我寫了一個junit測試來添加兩個數字。我需要從命令行傳遞這些數字。我正在從行家工具這個JUnit測試作爲如何從命令行傳遞輸入到junit maven測試程序
mvn -Dtest=AddNumbers
我的測試程序看起來像這樣
int num1 = 1;
int num2 = 2;
@Test
public void addNos() {
System.out.println((num1 + num2));
}
如何從命令行傳遞這些數字呢?
我寫了一個junit測試來添加兩個數字。我需要從命令行傳遞這些數字。我正在從行家工具這個JUnit測試作爲如何從命令行傳遞輸入到junit maven測試程序
mvn -Dtest=AddNumbers
我的測試程序看起來像這樣
int num1 = 1;
int num2 = 2;
@Test
public void addNos() {
System.out.println((num1 + num2));
}
如何從命令行傳遞這些數字呢?
您可以將它們像這樣
mvn -Dtest=AddNumbers -Dnum1=100
在命令行上,然後用
int num1=Integer.valueOf(System.getProperty("num1"));
標誌着一個答案,如果我們需要傳遞字符串參數,該怎麼辦呢? – 2016-03-14 10:52:15
傳遞的數字爲系統屬性訪問它們在您的測試樣通過@artbristol建議是一個好主意,但我發現它並不總能保證這些屬性會傳播到測試中。
就一定要系統屬性傳遞給測試使用maven surefire pluginargLine參數,如
mvn -Dtest=AddNumbers -DargLine="-Dnum1=1 -Dnum2=2"
要通過命令行輸入您按照這些步驟的JUnit的Maven測試程序。例如,如果需要文件名傳遞參數到由Maven的執行單元測試,然後按照步驟:
在JUnit代碼 - 參數將通過系統屬性進行傳遞:
@BeforeClass
public static void setUpBeforeClass() throws Exception {
String fileName = System.getProperty("fileName");
log.info("Reading config file : " + fileName);
}
在pom.xml中 - 在surefire插件配置中指定param名稱,並使用{fileName}表示法強制maven從系統屬性中獲取實際值
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-surefire-plugin</artifactId>
<configuration>
<systemProperties>
<property>
<name>fileName</name>
<value>${fileName}</value>
</property>
</systemProperties>
</configuration>
</plugin>
在命令行中傳遞文件名參數JVM系統屬性:
mvn clean test -DfileName=my_file_name.txt
我們能不能在這裏 – nullpointer 2016-11-28 04:59:58