3

私のTestNGアノテーションで、groovyで書かれたテスト用にdependsOnMethodsを使用する方法はありますか?

class WarehouseBehavior {
    @Test
    void shouldHaveWarehouse() {
        def warehouse = registry.getService Warehouse.class
        assertNotNull warehouse
    }
    @Test(dependsOnMethods = ['shouldHaveWarehouse'])
    void shouldStoreDataInWarehouse() {
        def warehouse = registry.getService Warehouse.class
        warehouse.store(['a': 'b', 'c': 'd'])
    }
}

ここに何かが欠けているか、groovy がこのタイプの注釈をサポートしていないだけです。同様のコードが Java で完全に機能し、これを groovy で実行すると次のエラーが発生するためです。

WarehouseBehavior.shouldStoreDataInWarehouse() is depending on method public void WarehouseBehavior.shouldHaveWarehouse(), which is not annotated with @Test
4

2 に答える 2

0

Testメソッドにはパッケージスコープがあります。

次のように明示的に宣言publicします。

@Test
public void shouldHaveWarehouse() {
    // .....
}
于 2012-09-28T22:29:23.680 に答える
0

:これは(完全な)IMOの回答ではありませんが、回避策です。誰かがこの回答を改善し、より多くの洞察を提供できる場合に備えて、ここに追加してください。

Groovy テストで同じ問題に直面しており、これまでに見つけた唯一の回避策は、両方のメソッドを同じグループに配置してから機能させることです。だから、このようなもの

class WarehouseBehavior {
    @Test(groups =['somegroup'])
    void shouldHaveWarehouse() {
        def warehouse = registry.getService Warehouse.class
        assertNotNull warehouse
    }
    @Test(groups =['somegroup'], dependsOnMethods = ['shouldHaveWarehouse'])
    void shouldStoreDataInWarehouse() {
        def warehouse = registry.getService Warehouse.class
        warehouse.store(['a': 'b', 'c': 'd'])
    }
}
于 2016-04-26T10:04:48.390 に答える