java在命令行上指定的包中运行所有TestNG测试
使用以下XML文件,我可以运行some.package.login
Java包中的所有测试
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE suite SYSTEM "http://testng.org/testng-1.0.dtd" >
<suite name="Login">
<test name="Login">
<packages>
<package name="some.package.login"/>
</packages>
</test>
</suite>
我想从命令行运行TestNG,该命令行与上面的XML文件相同,但没有XML文件。(此question询问如何使用XML文件运行。)我知道-suitename
参数。我只是不知道如何将执行限制到特定的包
我尝试了-testclass some.package.login.*
,但TestNG将其视为类的名称,不处理通配符
我可以在所有测试中使用-groups
,然后使用@Test(groups = "Login")
,但我宁愿不这样做
我正在寻找一种比为我想要运行的每个测试子集创建一个XML文件更简单的解决方案。为每个子集编写一个类并不比编写一个XML文件简单
如果无法做到这一点,我已提交了TestNG enhancement request
# 1 楼答案
这可以通过工厂(在CLI中使用
-testrunfactory
)完成,但需要一些额外的重构。或者只需在包中指定xml并使用-xmlpathinjar
。还可以在项目构建阶段动态创建xml# 2 楼答案
您将能够使用a method interceptor筛选测试
我让你完成匹配的逻辑。 然后,只需在命令行中添加一个环境变量,如: