我可以在Maven文档中找到如何运行的地方:
但是,如何在一个包中运行所有测试?这可能吗?
我希望不需要修改pom.xml
或代码的解决方案。
例如,您也可以使用模式
mvn '-Dtest=de.mypackage.*Test' test
运行以 de.mypackage 包结尾的类中的所有测试*Test
。
[更新2017/12/18]:
由于这已成为公认的答案,因此这里有一些进一步的信息:
上面使用的语法(合格的软件包名称)需要Surefire版本2.19.1
或更高版本!早期版本要求使用路径表达式,例如
mvn -Dtest="de/mypackage/*Test" test
我使用引号(`或“)来防止外壳执行路径名扩展,Maven不需要任何引号。
可以使用以下语法提取单个测试方法
mvn -Dtest=MyUnitTest#testMethod test
子包中的所有测试也可能包括在内,以便在包中或包下执行所有测试de.mypackage.sub
:
mvn -Dtest="de/mypackage/sub/**" test
或使用Surefire 2.19.1
或更高版本
mvn -Dtest="de.mypackage.sub.**" test
还有其他可能性,例如使用正则表达式,请参阅运行单个测试的官方文档。
问题内容: 在JUnit4中可以吗? 在JUnit3中,我将执行以下操作: 问题答案: takari-cpsuite(最初由Johannes Link 开发)提供了一个适合您需求的classpath- suite。它允许通过正则表达式对Classpath中的类进行过滤,例如:
我使用"testng"框架和"maven"从命令行运行我的测试。 我想在所有浏览器中运行测试,我们需要为所有浏览器配置testng.xml(我已经这样做了) 但是我想在所有浏览器中运行特定的测试。有没有办法做到这一点? 我知道在单浏览器中运行特定测试时,我们会使用maven命令,如下所示: 但是,无法同时指定testng和-Dtest,例如: (此外,pom.xml不能采取多值参数)请为这种情况提
问题内容: 我由大约40个开发人员组成的团队工作,我不希望任何开发人员使用任何开发人员都可以使用的特定API(准确地说是java.sun.Base64),而是让他们使用sun API的替代方法作为其专有。 是否有用于maven的插件,通过这些插件在pom.xml中指定受限制的软件包,如果在代码中的任何位置使用了这些软件包中的任何一个,则构建将中断? 还是有一种更优雅的方式来做到这一点? 谢谢 问题
我正在用scala到java maven项目编写一些测试。我希望用maven插件运行这些测试,但我也希望其余的JUnit测试也能运行。问题是,根据这个指导方针,我必须禁用surefire。我有一个同时运行scalatest和junit测试的解决方案吗?
我正在使用Spock框架进行测试(1.0-groovy-2.4版本)。Junit提供了使用命令行(使用Maven)运行特定测试的选项: 问题:我怎样才能和斯波克做到这一点? 这个版本依赖于Junit 4.12,Junit文档中指出,只有Junit 4才支持此功能。x、 基本上,斯波克应该提出类似的建议。
我正在通过Maven运行测试用例。使用以下命令: 获取成功: 获取失败: 类名为LoginTest 堆栈跟踪: [错误]无法执行目标org.apache.maven.plugins:maven-surefire-plugin:2.12.4:project Web上的test(default-test):未执行任何测试!(设置-DFAILIFNOTESTS=FALSE忽略此错误。)->[帮助1]or