Ant构建在Eclipse

时间:2015-10-28 10:24:08

标签: java eclipse ant

我正在Eclipse中开发Java项目,目前正在为它编写单元测试。

为了获得测试结果的良好交互式摘要,我通过

生成build.xml文件 文件>>导出>> Ant Buildfiles>> “检查我的项目”并按完成

然后,我使用Eclipse中的Edit Configuration视图配置构建文件,并选择我想要运行的测试(套件)并使用junitreport完成。

除了在通过Ant运行时找不到配置.txt文件这一小事实外,这非常有效。如果我运行测试的src文件,一切都按预期工作。

我将文件读取到像这样的

的InputStream
//CONFIG = "CONFIG/config.txt"
public static InputStream getConfigInputStream() throws IOException{
    File file = new File(CONFIG);
    return new FileInputStream(file);
}

以下是控制台的示例输出:

NameValidationTest:
   [junit] Running se.st.dsg.pc.test.junit_test.tests.unit_tests.NameValidationTest
   [junit] Tests run: 4, Failures: 2, Errors: 1, Skipped: 0, Time elapsed: 0,123 sec
   [junit] Error: 
   [junit] java.io.FileNotFoundException: CONFIG\config.txt (The system cannot find the file specified)
   [junit]  at java.io.FileInputStream.open0(Native Method)
   [junit]  at java.io.FileInputStream.open(Unknown Source)
   [junit]  at java.io.FileInputStream.<init>(Unknown Source)
   [junit]  at se.st.dsg.input_stream_source.InputStreamSource.getConfigInputStream(InputStreamSource.java:26)
   [junit]  at se.st.dsg.core.syst_params.SystParamsParser.parseConfig(SystParamsParser.java:40)
   [junit]  at se.st.dsg.pc.test.junit_test.tests.unit_tests.NameValidationTest.setup(NameValidationTest.java:20)
   [junit]  at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
   [junit]  at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
   [junit]  at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
   [junit]  at java.lang.reflect.Method.invoke(Unknown Source)
   [junit]  at org.junit.runners.model.FrameworkMethod$1.runReflectiveCall(FrameworkMethod.java:47)
   [junit]  at org.junit.internal.runners.model.ReflectiveCallable.run(ReflectiveCallable.java:12)
   [junit]  at org.junit.runners.model.FrameworkMethod.invokeExplosively(FrameworkMethod.java:44)
   [junit]  at org.junit.internal.runners.statements.RunBefores.evaluate(RunBefores.java:24)
   [junit]  at org.junit.runners.ParentRunner.run(ParentRunner.java:309)
   [junit]  at junit.framework.JUnit4TestAdapter.run(JUnit4TestAdapter.java:38)
   [junit]  at org.apache.tools.ant.taskdefs.optional.junit.JUnitTestRunner.run(JUnitTestRunner.java:535)
   [junit]  at org.apache.tools.ant.taskdefs.optional.junit.JUnitTestRunner.launch(JUnitTestRunner.java:1182)
   [junit]  at org.apache.tools.ant.taskdefs.optional.junit.JUnitTestRunner.main(JUnitTestRunner.java:1033)
   [junit] Test se.st.dsg.pc.test.junit_test.tests.unit_tests.NameValidationTest FAILED

我想强调的是,在Eclipse中正常编译和运行时不会发生此错误,并且在使用Ant时,不读取.txt文件的测试会按预期工作。我是否必须告诉Ant文件的位置,还是有其他方法可以解决这个问题?

0 个答案:

没有答案