Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/maven/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 如何断言其他模块中存在的文件-JUNIT_Java_Maven_Junit_Junit4 - Fatal编程技术网

Java 如何断言其他模块中存在的文件-JUNIT

Java 如何断言其他模块中存在的文件-JUNIT,java,maven,junit,junit4,Java,Maven,Junit,Junit4,我的目录结构如下所示 Root |--A |--src |--target |--output.xml |--B |--src |--test |--java |--MyTest.java @Test public void test() { File f = new File(this.getClass().getClassLoader().getResource("A/out

我的目录结构如下所示

Root
|--A
   |--src
   |--target
   |--output.xml 

|--B
   |--src
       |--test
            |--java
                 |--MyTest.java
  @Test
  public void test() {
    File f = new File(this.getClass().getClassLoader().getResource("A/output.xml").getFile());      
    assertTrue(f.exists());
  }
我的Junit测试方法如下所示`

@Test
public void testXmlGeneration() {
   File file = new File("output.xml");
    assertTrue(file.exists());
}
我想检查output.xml是否在目录A中生成。上面的测试失败了

java.lang.AssertionError
    at org.junit.Assert.fail(Assert.java:86)
    at org.junit.Assert.assertTrue(Assert.java:41)
我也尝试了下面的方法,但在NullPointerException中失败了`

    File file = new File(this.getClass().getClassLoader().getResourceAsStream("A/output.xml").toString());
assertTrue(file.exists());
NullPointerException堆栈跟踪如下所示

java.lang.NullPointerException
    at com.B.StatisticsTest.testXmlGeneration(StatisticsTest.java:37)
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
    at java.lang.reflect.Method.invoke(Method.java:498)
它的.toString()方法。它不会考虑文件,这就是为什么你得到这个错误你可以尝试如下< /p>
Root
|--A
   |--src
   |--target
   |--output.xml 

|--B
   |--src
       |--test
            |--java
                 |--MyTest.java
  @Test
  public void test() {
    File f = new File(this.getClass().getClassLoader().getResource("A/output.xml").getFile());      
    assertTrue(f.exists());
  }

尝试将完整路径指定为
新文件(“Root/A/output.xml”)
,并共享NPR stacktrace。java.lang.AssertionError失败。StackTrace与上面相同@NullPointer与上面相同stacktrace的NullPointer异常一起失败。(this.getClass().getClassLoader().getResource(“A/output.xml”).getFile()将返回一个文件,如果没有这样的文件,它将返回NullPointer。尽管文件存在,我怀疑可能存在一些配置问题!无论如何,感谢您的快速回复!