Maven TestNG测试用例中有多个方法如何从命令行参数使用IMethodSelector运行 @Test(组={“全部”、“冒烟”}) 课堂任务{ 公共无效发送任务(){ } 公共无效捕获任务(){ } public void captureTaskEvents(){ } }

Maven TestNG测试用例中有多个方法如何从命令行参数使用IMethodSelector运行 @Test(组={“全部”、“冒烟”}) 课堂任务{ 公共无效发送任务(){ } 公共无效捕获任务(){ } public void captureTaskEvents(){ } },maven,testng,Maven,Testng,如果我设置-Dtest\u mode=send,则捕获并使用System.getProperty(“test\u mode”)值在自定义构建中确定 现在在这里发送test\u模式仅运行sendstasks()方法。您可以通过TestNG中的Beanshell方法选择器轻松完成此操作。这是一个样品 我的测试课程如下所示 package com.rationaliemotions.stackoverflow.qn48163083; 导入org.testng.annotations.Test; 公营飞

如果我设置
-Dtest\u mode=send
,则捕获并使用
System.getProperty(“test\u mode”)
值在自定义构建中确定


现在在这里发送
test\u模式
仅运行
sendstasks()
方法。

您可以通过TestNG中的Beanshell方法选择器轻松完成此操作。这是一个样品

我的测试课程如下所示

package com.rationaliemotions.stackoverflow.qn48163083;
导入org.testng.annotations.Test;
公营飞机{
@试验
public void testForAndroid(){
System.err.println(getClass().getName()+“.testForAndroid()运行”);
}
@试验
public void testForWindows(){
System.err.println(getClass().getName()+“.testForWindows()运行”);
}
}
package com.rationaliemotions.stackoverflow.qn48163083;
导入org.testng.annotations.Test;
公共类样本{
@试验
public void testForAndroid(){
System.err.println(getClass().getName()+“.testForAndroid()运行”);
}
@试验
public void testForWindows(){
System.err.println(getClass().getName()+“.testForWindows()运行”);
}
}
这是我的套件xml文件


这里我通过JVM参数
-DmethodPattern
获取要执行的方法名。如果没有提供任何内容,我们默认运行所有内容

有关如何在TestNG中使用beanshells的更多信息,请查看我的博客文章

下面是使用
-DmethodPattern=testForAndroid执行示例的输出

...
... TestNG 6.13.1 by Cédric Beust (cedric@beust.com)
...
com.rationaleemotions.stackoverflow.qn48163083.SampleA.testForAndroid() ran
com.rationaleemotions.stackoverflow.qn48163083.SampleB.testForAndroid() ran
===== Invoked methods
    SampleA.testForAndroid()[pri:0, instance:com.rationaleemotions.stackoverflow.qn48163083.SampleA@df27fae] 233996206
    SampleB.testForAndroid()[pri:0, instance:com.rationaleemotions.stackoverflow.qn48163083.SampleB@2f0a87b3] 789219251
=====
PASSED: testForAndroid
PASSED: testForAndroid

===============================================
    92
    Tests run: 2, Failures: 0, Skips: 0
===============================================

===============================================
1265_Suite
Total tests run: 2, Failures: 0, Skips: 0
===============================================

不清楚你在问什么。你能解释一下你想要达到的目标吗?您是否试图找到从命令提示符运行特定方法的方法?是的,我正在尝试使用IMethodSelector,如果指定了方法,则应执行不同测试用例类中的所有方法。mvn-Dtest_mode=sendTasks()应该执行所有sendTasks。如果指定了method,您所说的
是什么意思?不同测试用例类中的所有方法都应该执行
?您是否考虑过使用Maven作为构建工具这样做?实际上,这里的问题是,我不希望只从单个测试用例执行单个方法java文件,我想执行所有java文件中的方法。我尝试过这种方法,但在当前的项目中没有用。在我们的项目中,我们有多个类,如上面代码所述,所以我希望每个类中的方法都能执行。很抱歉,我是maven和testng的新手,请帮助。嗨,Krishnan,谢谢你的回复,我定义了不同的testng.xml(例如:testng_send.xml和testng_push.xml)。嗨,Krishnan,谢谢你的回复,我需要在pom中有任何与maven surefire和beanshell相关的内容吗。