2016-03-03 5 views
0

У меня есть файл в/SRC/главная/Java, который имеет следующую строку кода:Путь класса во время модульного тестирования в Java

Test.class.getClassLoader().getResourceAsStream("test.json") 

и соответствующий файл ресурса присутствует в/SRC/основные/ресурсы ... Но мы думаем удалить этот test.json из папки classpath (src/main/resources), и мы включили бы еще одну зависимость jar и что jar будет содержать этот test.json ... Я тестировал с зависимостью jar и его работа отлично, так как это будет в classPath. Но проблема в том, что у нас есть некоторые тестовые примеры. Это не сработает, если мы не включим зависимость jar ... Возможно ли запустить тестовые примеры, поставив этот файл в файл src/test/resources. Без предоставления флагов.

+0

Пробовали ли вы? Вам нужно меньше минуты, чтобы узнать себя. – BetaRide

+0

Он не работает, размещая в src/тесте/ресурсах .. я пробовал его .. –

+0

Любые другие предложения? –

ответ

0

Попробуйте это, я не уверен, но он должен работать:

URL fileUrl = Test.class.getResource("test.json"); 
File testFile= new File(FileLocator.toFileURL(fileUrl).getPath()); 
0

Смотреть это.

different-ways-of-loading-a-file-as-an-inputstream

Это одна работа для меня:

Проект: NewFile

Files:

Test.java

package newfile.org; 

public class Test { 

    public static void main(String[] args) { 
     // TODO Auto-generated method stub 

    } 

} 

myfile.txt

It's my file 

Установить в качестве фляги библиотеки в другой проект:

MyClass.java

package example; 

    import newfile.org.Test; 

public class MyClass { 

    public static void main(String args[]) { 

     try (
       InputStream resourceAsStream = Test.class.getResourceAsStream("myfile.txt")) { 
       if(resourceAsStream == null) { 
        System.out.println("it's null"); 
       } 
       int r; 
       while((r = resourceAsStream.read()) != -1) { 
        System.out.println((char)r); 
       } 
      } catch (IOException e) { 
       // TODO Auto-generated catch block 
       e.printStackTrace(); 
      } 
     } 

Выход:

I 
t 
' 
s 

m 
y 

f 
i 
l 
e 
Смежные вопросы