3

考えられるほぼすべての構成を試しました (そして StackOverflow でいくつかの回答を確認しました) が、Hudson を介して実行すると、すべてのテストで「ApplicationContext の読み込みに失敗しました」というエラーが表示されます。興味深いのは、いくつかのテストが実行されて成功したように見える一方で、いくつかのテストが実行されて失敗したように見えることです (予想どおり)。基本的な構成は次のとおりです。

@ContextConfiguration(locations = "classpath:/MyTest-context.xml")
@RunWith(SpringJUnit4ClassRunner.class)
public class MyTest {

    @Autowired
    private ApplicationContext applicationContext;

    public MyTest() {}

    @Test
    public void doSomething() {
        // Implementation...
    }
}

アップデート:

1 つは Emma カバレッジ レポート用で、もう 1 つは通常のテストの重複した一連のテストが実行されているようです。エラーが表示されるのは、Emma カバレッジのテストが実行されたときです。「emma:emma package」ゴールをオフにしてそれらが実行されないようにすると、エラーは発生せず、テストは正常に実行されているように見えます。それが役立つかどうかはわかりません。

4

1 に答える 1

1

答えは gontard が指していたものに近いものになりました。これは、Emma のクラスローダが機能する方法によって隠されていた問題です。DEV 環境で実行していたローカル JUnit テストと、Emma を使用して Hudson で実行していたテストでは、クラスローダーがライブラリとクラスのロードを注文する方法がすべて異なります。最終的にテスト結果のスタック トレースを確認したところ、私のローカルでは新しいバージョンのライブラリが POM 経由で読み込まれましたが、ハドソンでは Emma が最初に古いバージョンのライブラリを読み込んでいたことがわかりました。古いバージョンを見つけて削除する必要がありましたが、今ではすべて正常に動作しています。

于 2012-08-21T17:33:08.220 に答える