Java 对具有相同项目的不同版本的所有子目录运行JUnit测试
假设我在一个父目录下的50个不同目录中有50个相同项目的不同版本。我已经编写了JUnit测试来测试每个目录中的项目,效果非常好。但问题是我必须运行50次才能得到测试结果 有没有什么方法可以让它自动在父目录下的所有子目录上运行测试 我现在正在使用Eclipse。但愿意切换到Netbeans或任何其他工具,但更喜欢Windows操作系统 注意:我将用它来给java编程作业评分。这意味着我在一个父目录下的50个不同目录中有50份提交。我已经写了测试用例来给每个提交的内容打分。现在我必须导入每个项目并手动运行测试用例。现在我想将其自动化以减少时间。您可以创建自己的。它扫描50个目录,或执行50次相同的测试用例,但针对不同的类路径。服务器就是为了实现这一点而设计的——管理自动测试的运行 有没有什么方法可以让它自动在父目录下的所有子目录上运行测试 每个中端服务器都应该为您提供所有这些功能。由于您已经标记了Java,最常见的是:Java 对具有相同项目的不同版本的所有子目录运行JUnit测试,java,eclipse,testing,junit,Java,Eclipse,Testing,Junit,假设我在一个父目录下的50个不同目录中有50个相同项目的不同版本。我已经编写了JUnit测试来测试每个目录中的项目,效果非常好。但问题是我必须运行50次才能得到测试结果 有没有什么方法可以让它自动在父目录下的所有子目录上运行测试 我现在正在使用Eclipse。但愿意切换到Netbeans或任何其他工具,但更喜欢Windows操作系统 注意:我将用它来给java编程作业评分。这意味着我在一个父目录下的50个不同目录中有50份提交。我已经写了测试用例来给每个提交的内容打分。现在我必须导入每个项目并手
例如,詹金斯支持 要从命令行运行JUnit,您需要在类路径上放置三件事:
FOR
来自动执行此操作(此处假设版本子目录位于C:\versions\
目录中:
FOR /D %F IN (C:\versions\*) DO java -cp .;C:\path\to\junit.jar;%F org.junit.runner.JUnitCore TestClass
这将在所有版本子目录中循环,并在每个子目录中运行您的测试类。可能的重复我没有为同一项目使用不同的包。同一项目的不同版本位于不同的目录中。听起来您必须在自己的类路径中运行每批测试,其中包括您当前正在测试。但是我不知道当前有哪一个IDE支持这样的功能。也许您可以创建自己的类,该类迭代版本目录,为每次运行定义类路径,并调用JUnit…将所有50个解决方案提交为同一项目的50个分支(例如git)并运行完全相同的build+tes如何eclipse之外的作业是否在两者之间切换分支?因此,您的测试源代码树保持静态,并且主源代码树在分支之间变化。这将需要几行脚本。我认为没有现成的解决方案,但bash中有一个脚本(windows上的gitbash shell)或者python应该非常简单。不假装是任何脚本语言,但算法应该是这样的:
for project in names
git checkout$project
mvn clean build>。/$project results
。我甚至可以为您编写脚本,如果您想在bash中使用,您只需要git和gitbash for windowsI就可以测试它谢谢!我刚刚更新了的示例,我忘记了%F
参数。顺便说一句,请确保在这两个位置都使用%F
,因为它区分大小写。或者如果您愿意,可以使用%F
:)我使用以下命令一次执行一个版本:java-cp。;“C:\ProgramFiles\NetBeans 8.0\platform\modules\ext\junit-4.10.jar”;C:\Test\HW4Test org.junit.runner.JUnitCore HW4Test但是它给出了一个错误,说NoClassDefFoundError:HW4Test$1Hmm我假设您首先编译了类。那个目录里有什么?只有我要测试的类的java文件。我还将测试类的编译类文件放入了测试类中,但它表示测试类为NoClassDefFoundError。
FOR /D %F IN (C:\versions\*) DO java -cp .;C:\path\to\junit.jar;%F org.junit.runner.JUnitCore TestClass