我知道您可以使用以下方法在某个类中运行所有测试:
mvn test -Dtest=classname
但我想运行一个单独的方法和-Dtest=classname。Methodname似乎不起作用。
我知道您可以使用以下方法在某个类中运行所有测试:
mvn test -Dtest=classname
但我想运行一个单独的方法和-Dtest=classname。Methodname似乎不起作用。
当前回答
首先,你需要清理你的专业项目
mvn戒毒
然后您可以使用运行特定的文件和函数
mvn test -Dtest=testClassName#testCaseName
其他回答
您需要指定JUnit测试类及其要执行的方法。
mvn test -Dtest=com.mycompany.AppTest#testMethod
https://metamug.com/article/java/build-run-java-maven-project-command-line.html#running-unit-tests
新版本的JUnit包含Categories运行器: http://kentbeck.github.com/junit/doc/ReleaseNotes4.8.html
但是JUnit的发布过程不是基于maven的,因此maven用户必须手动将其放入他们的存储库中。
tobrien提到的test参数允许您在方法名称前使用#来指定方法。这应该适用于JUnit和TestNG。我从来没有尝试过,只是在Surefire插件页面上阅读:
Specify this parameter to run individual tests by file name, overriding the includes/excludes parameters. Each pattern you specify here will be used to create an include pattern formatted like **/${test}.java, so you can just type "-Dtest=MyTest" to run a single test called "foo/MyTest.java". This parameter overrides the includes/excludes parameters, and the TestNG suiteXmlFiles parameter. since 2.7.3 You can execute a limited number of method in the test with adding #myMethod or #my*ethod. Si type "-Dtest=MyTest#myMethod" supported for junit 4.x and testNg
要在Maven中运行单个测试方法,您需要提供如下命令:
mvn test -Dtest=TestCircle#xyz test
TestCircle是测试类名,xyz是测试方法。
通配符也可以;包括方法名和类名。
如果在多模块项目中进行测试,则使用-pl <module-name>指定测试所在的模块。
对于集成测试,请使用it.test=…选项代替test=…
mvn -pl <module-name> -Dit.test=TestCircle#xyz integration-test
在单个测试类中运行一组方法 使用版本2.7.3,您只能在单个测试类中运行n个测试。
注意:junit 4支持。x和TestNG。
必须使用以下语法
mvn -Dtest=TestCircle#mytest test
你也可以使用模式
mvn -Dtest=TestCircle#test* test
从surefire 2.12.1开始,您可以选择多种方法(目前仅限JUnit4X,欢迎补丁)
mvn -Dtest=TestCircle#testOne+testTwo test
查看有关单个测试的链接