2016-04-24 15 views
3

ローカルで実行されたときに失敗しないビルドサービスで2つのテストが失敗します。ユニットテストはビルドサービスで失敗しますがローカルではありません

私が発見したことは、ローカルでmvn clean testを実行すると、テストクラスのソート順はアルファベット順(パッケージとクラス)ですが、ビルドサービスで実行されたときは一見ランダムです。

特定の「注文」が必要なわけではありませんので、別のテストの前にあるテストが分離問題を暗示していることは間違いありません。しかし、私はクラスを特定の順序で実行するようにmavenに伝えることはできないと思います。

私は何を再生することができますか?私はあなたがランダムなためmvn -Dsurefire.runOrder=random clean testを実行しようとする必要があり、私のビルド計画をクローン化されたが、フォークレポ(同じコード)で指摘し、それはありません失敗したテストで正常に実行された...

+0

見る - アルファベット順に実行するとテストがすべて緑であれば、あなたはあなたのビルドが一貫してより多くのオプションがいくつもありますmvn -Dsurefire.runOrder=reversealphabetical clean test

で失敗させることができるかもしれません最良の方法ですが、ビルドサービスのオーダーがランダムであると言うなら、あなたのマシン上で 'runOrder'をランダムに設定し、同じ問題に遭遇することを望みます。 –

+1

テストは注文に依存すべきではありません。各テストは別々に実行し、 '@ After'メソッドでリソースをクリーンアップする必要があります。しかし、とにかく、あなたはコードとテストが失敗する例外を提供することができますか? –

+0

@SergheyBishyr私は全く同意しますが、彼らは正常に実行されないために失敗しています。なぜなら、注文は間違いなく理由を明らかにするより速い方法のようです。 –

答えて

5

EDIT

ローカルで注文する。

ローカルでビルドに失敗した場合でも、テスト順序のためにランダムな順序で失敗を再現するのは最適な方法ではありません。私はこれがあるとは思わないrunOrder documentation

関連する問題