我的问题是测试用例无法看到新编译的文件。在我的程序中,我以编程方式更改输入程序(称为InputProgram),然后编译并将其保存在bin中的适当文件夹中。与输入程序相关的测试用例(作为Jar文件提供)也被提取并保存在bin目录中的适当文档中。
第一次迭代完全正常。实际上,如果我更改了InputProgram并且应用的更改导致测试用例中的任何失败,则测试用例可以捕获它们。 ( - :
然而,在第一次迭代之后,如果我再次更改程序,测试用例无法看到更改,并返回第一次更改的结果(第一次迭代)。实际上,它无法看到新编译的文件。请注意,我检查新创建的程序文件(.class),我可以看到更改。因此,编译器进程(以编程方式完成)工作正常。
我在执行第二次迭代之前从bin目录中删除了测试用例(.class)文件,令人惊讶的是我看到测试用例仍然可以运行,但同样基于旧版本。看来eclipse没有加载新版本的文件。
我还在执行期间清理bin目录(project-> clean),但仍然没有成功。我还用新的测试版替换了旧版本的测试用例(从jar文件中再次提取),但是再次没有成功。
总的来说,我需要Jave指令,我可以通过编程方式告诉eclipse加载新编译的文件。
不确定它有用,但我使用此说明运行JUnit测试用例:
Result result = JUnitCore.runClasses(testCase);
for (Failure failure : result.getFailures())
System.out.println(failure.toString());
答案 0 :(得分:0)
如果您从eclipse外部修改文件,则必须右键单击该项目并刷新它[F5]。
现在,如果我们谈论两个eclipse项目(一个有待测试的代码,另一个用代码来测试它),我建议你之间创建一个依赖项,就像这样
测试项目构建路径的位置
这样,主项目仍然没有测试代码,您的测试代码可以立即看到主项目的任何变化。