空白を無視する静的プロパティを持つXMLUnitというユーティリティクラスを使用しています。私は、以下に示すテスト、それを使用します。静的なフィールドに応じて同期?
XMLUnit.setIgnoreWhitespace(true);
DetailedDiff detailedDiff = new DetailedDiff(XMLUnit.compareXML(expected, actual));
detailedDiff.overrideElementQualifier(new ElementNameAndAttributeQualifier());
List<Difference> allDifferences = detailedDiff.getAllDifferences();
しかし、いくつかのテストは、空白を無視していないと私はジェンキンスが並列に実行さだと思います。私が他のテストに影響を与えないようにする最良の方法は何ですか?以下のようなXMLUnitクラスで同期できますか?また
synchronized (XMLUnit.class) {
XMLUnit.setIgnoreWhitespace(true);
DetailedDiff detailedDiff = new DetailedDiff(XMLUnit.compareXML(expected, actual));
detailedDiff.overrideElementQualifier(new ElementNameAndAttributeQualifier());
List<Difference> allDifferences = detailedDiff.getAllDifferences();
XMLUnit.setIgnoreWhitespace(false);
}
、私はジェンキンスに並行して構築されている複数のMavenのモジュールがあり、それらはすべて、このクラスを使用する場合の動作は何になりますか?各モジュールにはXMLUnit.classの独自のインスタンスがありますか?
私は問題が同期しているとは思わない。テストの前に 'XMLUnit.setIgnoreWhitespace(true);'が実行されていることを確認するだけです。 '@ Before'に配置してください。JUnit annotation –
あなたは、あなたのテストを並行して実行できるものとできないものに分けなければならないかもしれないと思います。このプロパティに依存するテストは、一方向が必要な場合には並列実行できず、逆も必要な場合は並列実行できません。同期が役立つかもしれませんが、テスト期間によってはロックが長すぎるためにテストがタイムアウトしている可能性があります。 –
良い点ですが、キュウリのステップで使用されます.Junitでは使用されません –