Linux で完全に動作するネストされた TestNG スイート ファイル構成がありますが、Windows で実行しようとすると、パスが台無しになり、「ファイルが見つかりません」という例外が発生します。
Windows ファイル システムの構造は次のようになります。
C:\MyProject\RootSuite.xml
C:\MyProject\subfolder1\ChildSuite.xml
C:\MyProject\subfolder1\subfolder2\GrandChildSuite.xml
RootSuite.xml は次のようになります。
<suite name="RootSuite" verbose="2" thread-count="1" parallel="false">
<suite-files>
<suite-file path="subfolder1/ChildSuite.xml" />
</suite-files>
</suite>
ChildSuite.xml は次のようになります (「subfolder1」への相対パスを使用):
<suite name="ChildSuite" verbose="2" thread-count="1" parallel="false">
<suite-files>
<suite-file path="subfolder2/GrandChildSuite.xml" />
</suite-files>
</suite>
Windows で実行すると、GrandChildSuite.xml の相対パスがプロジェクトのルートに戻されるようです。次のようなエラーが表示されます。
Running TestSuite
java.io.FileNotFoundException:
C:\MyProject\newfolder2\GrandChildSuite.xml
(The system cannot find the path specified)
繰り返しますが、これは Linux/OSX で正常に動作するため、TestNG はこのような相対スイート ファイル パスをサポートできるようです。また、TestNG はファイル パスの区切り文字を / から \ に変換しています。だから、それは問題ではないようです。
Maven Surefire プラグインを使用して TestNG を起動しています。コマンドラインとEclipse TestNGプラグインの両方から試しました。どちらも同じ動作を示します。
このようなネストされた方法でスイートファイルを使用している人々の例をあまり見つけることができなかったので、助けていただければ幸いです。ありがとう!