2つの数値を加算するjunitテストを作成しました。この番号をコマンドラインから渡す必要があります。私はmavenツールからこのjunitテストを実行しています
mvn -Dtest=AddNumbers
私のテストプログラムはこのようになります
int num1 = 1;
int num2 = 2;
@Test
public void addNos() {
System.out.println((num1 + num2));
}
これらの数値をコマンドラインから渡す方法は?
@artbristolによって提案されているようなシステムプロパティとして数値を渡すことは良い考えですが、これらのプロパティがテストに反映されることが常に保証されているわけではないことがわかりました。
システムプロパティを確実にテストに渡すには、次のように maven surefire pluginargLine パラメータを使用します
mvn -Dtest=AddNumbers -DargLine="-Dnum1=1 -Dnum2=2"
コマンドラインからjunit mavenテストプログラムに入力を渡すには、次の手順に従います。たとえば、パラメーターfileNameをMavenによって実行される単体テストに渡す必要がある場合は、次の手順に従います。
JUnitコードでは、パラメーターはシステムプロパティを介して渡されます。
@BeforeClass
public static void setUpBeforeClass() throws Exception {
String fileName = System.getProperty("fileName");
log.info("Reading config file : " + fileName);
}
Pom.xml内-surefireプラグイン構成でパラメーター名を指定し、{fileName}表記を使用してmavenにシステムプロパティから実際の値を取得させる
<plugin>
<groupId>org.Apache.maven.plugins</groupId>
<artifactId>maven-surefire-plugin</artifactId>
<configuration>
<!-- since 2.5 -->
<systemPropertyVariables>
<fileName>${fileName}</fileName>
</systemPropertyVariables>
<!-- deprecated -->
<systemProperties>
<property>
<name>fileName</name>
<value>${fileName}</value>
</property>
</systemProperties>
</configuration>
</plugin>
コマンドラインで、fileNameパラメータをJVMシステムプロパティに渡します。
mvn clean test -DfileName=my_file_name.txt
あなたはこのようにコマンドラインでそれらを渡すことができます
_mvn -Dtest=AddNumbers -Dnum1=100
_
次に、テストでそれらにアクセスします
int num1=Integer.valueOf(System.getProperty("num1"));