Жобалық құрылымнан тест ресурсын жүктеу үшін грустьді пайдаланыңыз

Жобаның жұмыс кеңістігіндегі/datatest қалтасында орналасқан ресурсты жүктегім келеді. Осылайша, бүкіл файл /datatest/a.xml болады. Бірлік сынақтарында қажет қордың абсолютті жолын қалай алуға болады, себебі кез-келген құрылғыда оны сынақтан өткізуді қаламаймын, бірақ орнына classloader пайдаланудан алсаңыз? Мұны қалай істеуге болады?

22
бұл жауапты тексере аласыз
қосылды автор GreenGiant, көзі
Иә жобаның жұмыс кеңістігі класс жолына қосылады
қосылды автор Phoenix, көзі
Сіздің жобаңыздың жұмыс кеңістігі сынып жолында ма? Әдетте жоқ. Мұндай жағдайда, classloader оны көре алмайды
қосылды автор tim_yates, көзі

1 жауаптар

Егер сіздің класс жолында болса, онда бұл жұмыс істеуі керек:

String xmlString = this.getClass().getResource( '/datatest/a.xml' ).text
41
қосылды
Бұл шын мәнінде «.lst» файл ... мысалға «a.lst» ... Мен оны IntelliJ компиляторының ресурстарына қосып, бірақ әлі де сәттілік болмады
қосылды автор Phoenix, көзі
Мен CLASS_PATH анықтамасын анықтай алмадым, бірақ ағымдағы айналымның осы Groovy one-liner бағдарламасын іске қосу арқылы менің тиімді/стандартты CLASS_PATH элементіне қосылғанын анықтады: this.class.classLoader.rootLoader.URLs.each {println it} - кейінірек ашу үшін getResource деуге болатын файлдарды қайда сақтау керектігі анық болды.
қосылды автор MarkHu, көзі
Бұл жағдайда класс жолында емес
қосылды автор tim_yates, көзі
Мен жетекші /
қосылды автор crusy, көзі