如何在命令行中将参数传递给testng?

时间:2016-06-08 08:21:54

标签: java testng

是否可以在命令行中将参数传递给testng?

类似于maven的参数:mvn testname -Dparam1=value1 -Dparam2=value2

我知道如何使用和实际使用:

  • testng.xml(参数和测试类,要执行的方法)
  • DataProvider(传递测试数据)

但是有一个参数应该在命令行中传递 - serverName,例如:

java -cp "/opt/testng-6.8.jar:bin" org.testng.TestNG testng.xml -Dservername=srv1

原因:不希望每个testng-srv1.xml, testng-srv2.xml ... X test suite有几十个server

2 个答案:

答案 0 :(得分:5)

java-Dservername=srv1视为org.testng.TestNG的命令行参数,而不是其中一个选项。您需要将-Dservername=srv1移至“class”选项之前(即org.testng.TestNG之前)。 e.g:

java -cp "/opt/testng-6.8.jar:bin" -Dservername=srv1 org.testng.TestNG testng.xml

答案 1 :(得分:1)

您可能必须将-Dservername=srv1部分移到org.testng.TestNG之前。请尝试以下操作:

java -cp "blabla" -DparameterName=value org.testng.TestNG testng.xml

此外,我建议不要在您的testng.xml文件中添加此参数。否则,它将覆盖此值。