TestNG Groovy dependson方法
对于用groovy编写的测试,有没有办法在我的TestNG注释中使用dependsOnMethodsTestNG Groovy dependson方法,groovy,annotations,testng,Groovy,Annotations,Testng,对于用groovy编写的测试,有没有办法在我的TestNG注释中使用dependsOnMethods class WarehouseBehavior { @Test void shouldHaveWarehouse() { def warehouse = registry.getService Warehouse.class assertNotNull warehouse } @Test(dependsOnMethods = ['s
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
Test
方法具有包范围
明确声明public
为:
@Test
public void shouldHaveWarehouse() {
// .....
}
注意:这不是(完整的)答案,但更多的是解决方法。只是在这里添加它,以防有人可以改进这个答案并提供更多的见解 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'])
}
}
如果这是Java的话,这会很有意义,但事实并非如此,因为正如Groovy中所述,默认情况下方法和类是公共的。换句话说,
void shoulldhavewarehouse(){/*…*/}
与public void shoulldhavewarehouse(){/*…*/}
完全相同,只是更简洁了一点。