从命令行运行JUnit测试套件

7

我该如何从命令行运行Junit 4.8.1测试套件? 另外,我想使用JUnit 4.8引入的分类,有没有一种方式可以在命令行中指定我要运行的类别。

4个回答

5

使用 java 运行 JUnitCore 类(也可以查看这里)。

类别应该与测试套件一起使用,使用 @RunWith(Categories.class)@IncludeCategory@ExcludeCategory。我不知道有没有动态使用类别运行测试的方法,但如果存在这样的方法,我想知道。您可以为某些类别设置预定义的测试套件来运行它们。


可以创建自定义的测试运行器,根据类别动态选择要运行的测试。 - topchef
这里有一种简单的方法可以运行套件/类别中的所有测试(无需显式枚举测试):https://dev59.com/W3I95IYBdhLWcg3wvgl9#2176791(如果这不是您想要的,请告诉我。) - Jonik
是的,我知道这个(http://stackoverflow.com/questions/3324623/how-can-i-run-all-junit-tests-in-one-package-netbeans/3332970#3332970)。我认为作者的意思是基于类别作为参数运行测试。 - topchef
这样做的明显原因是排除我们 10 分钟 CI 构建中的慢速测试(例如 touches、网络、数据库或磁盘)。这为那些一直误用 JUnit 的组织提供了一种过滤掉这种误用的方法。 - Mark Levison

3

截至4.8版本,无法通过命令行指定类别。


1
我可以提供两种方法: 1. 创建一个带有junit目标的Ant文件,然后从命令行调用此目标。 2. 实现测试套件类,在其中编写一个带有main()方法的类。这样你就可以运行它了。

0
在4.10中,我们这样做:
mvn verify -p(your profiles) -Dit.test=(SuiteClass)

SuiteClass 是一个空类(没有方法或字段),它带有注释 @RunWith(Categories.class)@Suite.SuiteClasses({FooIT.class, BarIT.class, ...})。其中,FooITBarIT 是集成测试。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接