在调试或单元测试时如何单独运行依赖测试

时间:2018-09-25 15:24:19

标签: testng

我在类UserRegistrationTest中有两个方法,如下所示。当我运行类时,两个方法成功运行(首先运行UserRegistrationTest,然后再运行userLoginSuccess)。但是,当我只想调试测试userLoginSuccess时,它也会触发UserRegistrationTest。这是预料之中的,因为我已经配置了dependisonMethods。

当我进行单元测试/调试时,我试图找到一种方法来使dependsonMethods无效。我按照以下链接中给出的路径进行操作,但无法最终确定解决方案。

https://groups.google.com/forum/#!topic/testng-users/K9lwhXuSLZM https://youtrack.jetbrains.com/issue/IDEA-141621

请提供您的想法。

顺便说一句,当我以TestNg套件的身份运行时,我可以通过提供listner(IAnnotationTransformer)来使DependencyMethods和dependsonGroups无效。当我作为maven测试运行时,我也可以通过在pom.xml中提供它来使其无效。但是,当我以TestNG Test运行时,我无法以编程方式将dependsOnMethods设置为null。

public class UserRegistrationTest {

        @Test(groups = { "userRegistration" })
    public void registerUserSuccess(ITestContext context) {
    ...
        context.setAttribute("user", user);
    }

     @Test(dependsOnMethods = { "userRegistration" })
    public void userLoginSuccess(ITestContext context) {
        User user = (User) context.getAttribute("user");
    ...
    }
}

1 个答案:

答案 0 :(得分:0)

您可以通过定义以下方法来忽略任何依赖方法:ignoreMissingDependencies = true

方法本身就是说

enter image description here

public class UserRegistrationTest {

    @Test(groups = { "userRegistration" })
    public void registerUserSuccess(ITestContext context) {
    ...
        context.setAttribute("user", user);
    }

    @Test(dependsOnMethods = { "userRegistration" }, ignoreMissingDependencies = true)
    public void userLoginSuccess(ITestContext context) {
        User user = (User) context.getAttribute("user");
    ...
    }
}