Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/maven/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 多个TestNG组:可以从命令行专门对它们进行AND吗?_Java_Maven_Command Line_Testng - Fatal编程技术网

Java 多个TestNG组:可以从命令行专门对它们进行AND吗?

Java 多个TestNG组:可以从命令行专门对它们进行AND吗?,java,maven,command-line,testng,Java,Maven,Command Line,Testng,假设我有一个桌面用户界面和一个移动用户界面,用于相同的后端功能(例如,帐户、结帐)。然后我将有以下测试类: @Test(groups = { "desktop", "account" }) public class DesktopAccountTest {} @Test(groups = { "desktop", "checkout" }) public class DesktopCheckoutTest {} @Test(groups = { "mobile", "account" })

假设我有一个桌面用户界面和一个移动用户界面,用于相同的后端功能(例如,帐户、结帐)。然后我将有以下测试类:

@Test(groups = { "desktop", "account" })
public class DesktopAccountTest {}

@Test(groups = { "desktop", "checkout" })
public class DesktopCheckoutTest {}

@Test(groups = { "mobile", "account" })
public class MobileAccountTest {}

@Test(groups = { "mobile", "checkout" })
public class MobileCheckoutTest {}
我永远不需要在同一执行中运行桌面和移动测试。另一方面,我想运行所有桌面测试或所有移动测试,这对于
mvn测试-Dgroups=“desktop”
mvn测试-Dgroups=“mobile”
来说很容易。但是,如果我只想运行桌面帐户测试呢?这不起作用:
mvn测试-Dgroups=“desktop,account”
:它返回所有桌面测试和所有帐户测试


有没有办法得到两组的交集,而不是它们的总和?从命令行?

您应该尝试
mvn测试-Dgroups=“desktop,account”-dexcludegtoups=“mobile”


但是,如果您只想运行一个测试,也可以:

另一个解决方案是为每个特定组创建一个文件。

我尝试了您的建议。它提供了额外的过滤,但仍然基于两个组的总和,而不是它们的交集。无论如何,你仍然得到我的投票:)是的,但这只是TestNG目前支持收件箱的内容。您可以轻松地选择过滤不需要的测试的位置。