1

テストクラス(junitテスト)から反映したjarファイルがあります。

TestSuite インスタンスを作成し、それにテストを追加しました。

コードをチェックするために、サンプル テスト クラスを 1 つだけテスト スイートに追加しようとしました。

TestSuite suite = new TestSuite();
suite.addTest(new JUnit4TestAdapter(ExampleTest.class));

次に、テストを実行するために suite.run() を呼び出しました。

TestResult result = new TestResult();
suite.run(result);

問題は、テストが完了すると、結果にあるはずの失敗リストが空になることです。

Enumeration<TestFailure> failures = result.failures(); // = empty list

testSuite を使用してエラーを取得するにはどうすればよいですか? JUnitCore.runclasses を使用すると、失敗リストを取得できますが、テスト クラスを入力として取得するため、使用する必要がある TestSuite のインスタンスでは使用できません。

編集-1:

TestSuite を拡張する Class を作成し、スイートにクラスを動的に追加することが可能であれば、私のニーズを満たすことができます。
どんな提案も素晴らしいでしょう。

編集-2:

ウェブでさらに検索すると、失敗testFailureの違いがわかりました。失敗ではなく testFailure でテストを失敗させるにはどうすればよいですか?

4

1 に答える 1

0

さらにデバッグを行った後、TestResult オブジェクトが失敗をキャッチしたが、エラー (アサーション エラー) として報告されていることがわかりました。
また、TestResult.errors() が TestFailure の列挙子を返すこともわかりました。各 TestFailure には、スローされた例外に関する情報が含まれているため、どのエラーがアサーション エラーで、どれがそうでないかを確認することで、エラーと失敗を区別できます。

于 2016-07-24T07:47:48.227 に答える