1

JUnit 出力にメッセージを追加する方法はありますか? 今、そのメッセージを含む例外を ErrorCollector に追加できますが、メッセージとスタックがあり、最後は必要ありません。エラーの前にメッセージを追加したいと思います。

XML をチェックしながら、すべての不一致を収集し、最後にエラーがあれば、XML 自体とその後のエラーを出力するという考え方でした。

編集: メッセージだけを出力するのではなく、既存の出力に追加したいことに注意してください。

4

2 に答える 2

1

独自のエラー コレクターを記述します。既存の assert メソッドを簡単にラップし、例外をキャッチして、失敗したかどうかを追跡する必要があります。これをルールとして記述した場合、手動で行う必要がある各テストの後に評価できます。

于 2013-04-11T10:31:27.730 に答える
1

ErrorCollectorわずかに異なる動作を探しているようです。最善の解決策は、独自のバージョンを展開することです。

ソースは次のとおりですErrorCollector: https://github.com/junit-team/junit/blob/master/src/main/java/org/junit/rules/ErrorCollector.java

文字列のみに関心があり、スタック トレースが必要ない場合の簡単なバージョンを次に示します。スタック トレースも収集したいが、最初にすべての文字列を表示するだけなら、そのコードはあなたに任せます。

public class ErrorMessageCollector extends Verifier {
    private List<String> errors = new ArrayList<>();

    @Override
    protected void verify() throws Throwable {
        StringBuilder sb = new StringBuilder();
        for (String e : errors) {
            sb.append(e).append('\n');
        }
        assertTrue(sb.toString(), errors.isEmpty());
    }

    /**
     * Adds an error message to the table. Execution continues, but the test 
     * will fail at the end.
     */
    public void addErrorMessage(String error) {
        errors.add(error);
    }
}
于 2013-04-11T10:33:54.023 に答える