Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/eclipse/9.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 TestCases无法看到新编译的文件-Eclipse_Java_Eclipse_Junit - Fatal编程技术网

Java TestCases无法看到新编译的文件-Eclipse

Java TestCases无法看到新编译的文件-Eclipse,java,eclipse,junit,Java,Eclipse,Junit,我的问题是测试用例看不到新编译的文件。在我的程序中,我以编程方式更改一个输入程序(称为InputProgram),然后编译该程序并将其保存在bin中的适当文件夹中。与输入程序(作为Jar文件提供)相关的测试用例也被提取出来,并保存在bin目录中的适当文档中 第一次迭代工作得非常好。事实上,如果我更改了InputProgram,并且应用的更改导致了测试用例中的任何失败,那么测试用例可以捕获它们。(-): 但是,在第一次迭代之后,如果我再次更改程序,测试用例将看不到更改,并返回第一次更改(第一次迭代

我的问题是测试用例看不到新编译的文件。在我的程序中,我以编程方式更改一个输入程序(称为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());

如果从eclipse外部修改文件,则必须右键单击项目并刷新它[F5]

现在,如果我们讨论的是两个eclipse项目(一个有要测试的代码,另一个有要测试的代码),我建议您在这两个项目之间创建一个依赖关系,如下所示

测试项目生成路径的位置

这样,主项目仍然没有测试代码,您的测试代码可以立即看到主项目中的任何更改