基于上述答案的组合,我已经弄清楚了。
首先删除测试套件文件中的硬编码参数。
接下来,确保 pom 文件中支持这些参数。
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-surefire-plugin</artifactId>
<version>2.4.2</version>
<configuration>
<systemPropertyVariables>
<environment>${testEnv}</environment>
<environment>${proxyServer}</environment>
<environment>${proxyPort}</environment>
</systemPropertyVariables>
</configuration>
</plugin>
</plugins>
</build>
创建常量文件以包含参数的默认值
public class Constants {
public static final String DEFAULT_TEST_ENV = "dev";
public static final String DEFAULT_PROXY_SERVER = "a-dev.phx.com";
public static final String DEFAULT_PROXY_PORT = "8585";
}
在 testNG setup() 方法中,使用 System.getproperty():
@BeforeClass(alwaysRun = true)
protected static void setUp() throws Exception {
String testEnv = System.getProperty("testEnv", Constants.DEFAULT_TEST_ENV);
String proxyServer = System.getProperty("proxyServer", Constants.DEFAULT_PROXY_SERVER);
String proxyPort = System.getProperty("proxyPort", Constants.DEFAULT_PROXY_PORT);
System.out.println("testEnv: " + testEnv);
System.out.println("proxyServer: " + proxyServer);
System.out.println("proxyPort: " + proxyPort);
}
我可以将默认值放在一个配置文件中,但现在,常量文件在它自己的类中似乎是最简单的。