2

Java main メソッド内で TestRunner.run(suite) として Junit Test Runner を実行しており、正常に実行されるローカルで実行しています。私が立ち往生しているのは、コマンドラインから実行するすべてのテストスイートが

OK (1 回のテスト) ... OK (2 回のテスト) ...

私はこの動作をしたくありません。これを取り除く方法はありますか?私はたくさん検索しましたが、誰もこれに取り組んでいないようです。

メソッド ルールとクラス ルールの注釈は、スイート レベル (インターセプター) で物事を処理しているように見えますが、junit が提供するスイート出力をオーバーライドすることはできません

これに関する任意のポインタは大歓迎です

4

1 に答える 1

1

TestRunnerクラスには、setPrinter(ResultPrinter)出力に何が起こるかをオーバーライドできるメソッドがあります。1つをコンストラクターに渡すこともできます。デフォルトでは、プリンタは次のとおりです。

new ResultPrinter(System.out);

たとえば、サブクラスを作成するResultPrinterと、正常な出力をオフにできます。このようなものが機能するはずです:

public class MyResultPrinter extends ResultPrinter {
    public MyResultPrinter(PrintStream writer) {
        super(writer);
    }
        @Override
    protected void printFooter(TestResult result) {
        if (result.wasSuccessful()) {
            // just drop the OK messages
        } else {
            // but print the failures
            super.printFooter(result);
        }
    }
}

次に、次のように使用します。

new TestRunner(new MyResultPrinter(System.out)).run(suite);
于 2012-03-29T22:14:43.950 に答える