java - TestNG:如何在命令行上放置 java 方法的参数?

标签 java command-line terminal testng

我有这样的测试脚本:

public class AppTest {
    @Test
    public void print(String strInput)
    {
        System.out.println("String: " + strInput);
    }
}

和 Testng.xml:

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE suite SYSTEM "http://testng.org/testng-1.0.dtd">
<suite name="Default suite">
  <test verbose="2" name="Default test">
    <classes>
      <class name="Test.printTest.AppTest"/>
    </classes>
  </test> <!-- Default test -->
</suite> <!-- Default suite -->

如何将参数放在命令行上而不是 testng.xm 上?

最佳答案

你可以做一个data provider这将在系统属性中查找属性:

public class AppTest {

  @DataProvider
  public static Object[][] dp() {
    String input = System.getProperty("input");
    return new Object[][] {
      new Object[] { input }
    }
  }

  @Test(dataProvider="dp")
  public void print(String strInput) {
      System.out.println("String: " + strInput);
  }
}

然后,您只需在命令行中添加 -Dinput="HelloWorld 参数即可运行它。

关于java - TestNG:如何在命令行上放置 java 方法的参数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33952390/

相关文章:

Linux 后台任务完成

regex - 在 Linux 终端中使用带有 egrep 的正则表达式查找数字

java - JAXB 中的 XML 解析问题

java - Enum和Enumeration有什么关系,如果有的话

java - java的具体提示命令

bash - 脚本中的 source .bashrc 不起作用

java - 如何添加 .jar 文件以便在我的 IDE (BluJ) 中使用它

linux - sed - 使用命令行追加到下一行

c++ - 在 Unix 控制台上按下后立即接收 key

c - 如何使用 fork() 打开新的终端窗口?