動機
- mavenやant、EclipseやIntelij IDEAがない環境でもTestNGを使いたい。
環境
- OS : Windows 11 Home
- JDK
>java -version
openjdk version "1.8.0_382"
OpenJDK Runtime Environment (Temurin)(build 1.8.0_382-b05)
OpenJDK 64-Bit Server VM (Temurin)(build 25.382-b05, mixed mode)
手法
1. ライブラリのダウンロード
mvnrepositoryからダウンロードする。
必要なのは以下の2つ。
より新しいバージョンがあるが、JDK8をサポートしていない場合がある。
詳しくは調査していないがこのバージョンの組み合わせで動作した。
TestNGは多くのバージョンで脆弱性が報告されているので注意(CVE-2022-4065)。
2. 環境変数の設定
毎回引数に-cp [classpath]
を記述しても良いが面倒なので設定する。
環境変数名はCLASSPATH
を、値は上でダウンロードしたJARファイルを配備したディレクトを設定する。
例:C:\Users\{ユーザ名}\Java\classpath\*
classpath
配下のファイルがすべてクラスパスに読み込まれる。
3. テストケース
非常に簡易なサンプルを用意。
SampleTest.java
import org.testng.annotations.Test;
public class SampleTest {
@Test
public final void fooTest() throws Exception {
System.out.println("foo");
}
}
4. テスト起動用xml
非常に簡易なサンプルを用意。
なお、最近のTestNGは1行目でhttp
ではなくhttps
を用いる。
testng.xml
<!DOCTYPE suite SYSTEM "http://testng.org/testng-1.0.dtd" >
<suite name="Suite" verbose="1" >
<test name="Test" >
<classes>
<class name="SampleTest" />
</classes>
</test>
</suite>
5. テスト実行
ここでディレクトリ構成を確認しておく。
-{任意のディレクトリ}
- src
- SampleTest.java
- testng.xml
コマンドプロンプトで以下を実行。
# ソースのあるフォルダに移動
>cd {任意のディレクトリ}\src
# テストケースをコンパイル
>javac SampleTest.java
# テスト実行
>java -cp %CLASSPATH%;.\ org.testng.TestNG testng.xml
foo
===============================================
Suite
Total tests run: 1, Failures: 0, Skips: 0
===============================================