<dependency>
<groupId>org.testng</groupId>
<artifactId>testng</artifactId>
<version>7.3.0</version>
</dependency>
リソースからtestng-1.0.dtdファイルを読み取った後に例外
testng-1.0.dtdファイルをリソースから読み取ることができません
IntelliJ v2020.2.3(TestNG IDEプラグインバージョン202.7660.26)
VM引数 '-Dtestng.dtd.http = true'を追加するか、HTTPSリソースを使用するだけでよいと思います。 現在、TestNGはスイートファイルのデフォルトとしてHTTPSを必要とします。
@ kobebryant2007コードに明らかなバグがあります。
testng-1.0.dtd
がネットワークを介して取得されたくない。@juherrご注意ください。
@ shaburov-
引数を追加したくないし、ファイルtestng-1.0.dtdがネットワークを介して取得されたくない。
私の理解に基づくと、TestNGがネットワークからDTDを探す理由は、最新の適切なDTDを確実に取得するためです。 TestNGは、httpsプロトコルを介してのみTestNG WebサイトからDTDを取得しようとします。それが見つからない場合は、そのエラーが表示されます。 これを無効にする唯一の方法は、 @ kobebryant2007が提案したJVM引数を使用することです。
フラグを追加した場合、コードに基づいて、ファイルをリソースに配置することは意味がありません。
TestNGがローカルリソースからファイルを読み取ることであるというこの期待の背後にある理由を理解するのを手伝ってもらえますか? どこかでそのように言及されている場合は、関連するドキュメントを教えてください。 ネットワークの不具合がある場合、TestNGはデフォルトで現在中止されます。 これはPRhttps ://github.com/cbeust/testng/pull/2386の一部として整理されており、TestNGjarに埋め込まれたDTDにフォールバックします。 PRがマージされると、リソースとしてフェッチできるCLASSPATHにtestngdtdファイルを作成することができると思います。
@shaburov何をしようとしていますか?
TestNG jarにはすでにDTDが含まれており、使用されることになっています。
@juherrスクリーンショットに添付したコードを見て、そうではないことを理解してください。
ファイルがリソースから読み取られる前に、例外がスローされます。
問題は、IntelliJがHTTPSを使用していないことだと思います。
または、HTTPS以外のURLがURLS
リストにないこと( TESTNG_DTD_URL
とHTTPS_TESTNG_DTD_URL
はまったく同じであることに注意してください)。
@algotastic 2番目、私は信じています。
@shaburovは正しいです、これはバグです:
https://github.com/cbeust/testng/blob/7.3.0/src/main/java/org/testng/xml/Parser.java#L33
public static final String TESTNG_DTD_URL = "http://testng.org/" + TESTNG_DTD;
である必要があります
そして、このhttps://github.com/cbeust/testng/blob/7.3.0/src/main/java/org/testng/xml/Parser.java#L28
public static final String OLD_TESTNG_DTD_URL = "http://beust.com/testng/" + TESTNG_DTD;
必要があります
そうです、 https://github.com/cbeust/testng/commit/cf22ccfcb2a34f9b0bb4fa8cbedae5297ddd2049からの予期しない「すべて置換」のように見え
'-Dtestng.dtd.http = true'を追加しても問題ありませんが、これにより、IntelliJ(右クリックして実行)でクラス/メソッドのテストをオフラインで実行できなくなります。
最も参考になるコメント
そうです、 https://github.com/cbeust/testng/commit/cf22ccfcb2a34f9b0bb4fa8cbedae5297ddd2049からの予期しない「すべて置換」のように見え