3

有什么方法可以在我的 TestNG 注释中使用dependsOnMethods来进行用 groovy 编写的测试吗?

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 回答