本文介绍: 如果alwaysRun是在没有dependsOnMethods或dependsOnGroups属性的情况下编写的,它将被忽略因此,最好将其与dependsOnMethods或dependsOnGroups一起使用。让我们尝试运行一个依赖于另一个测试方法(dependsOnThis,也在下面显示)的测试用例(testMethod,如下所示),而不使用alwaysRun属性,看看会发生什么。这就是alwaysRun属性的功能。现在,让我们尝试相同的代码,但我们将使用alwaysRun属性,看看会发生什么。

@Test注释有许多属性,alwaysRun就是其中之一。在这篇文章中,我们将详细讨论alwaysRun属性。

alwaysRun属性的用途是什么?这个属性有什么作用?嗯,根据测试文件。

困惑?别担心我们会帮你的。

让我们尝试运行一个依赖于另一个测试方法(dependsOnThis,也在下面显示)的测试用例(testMethod,如下所示),而不使用alwaysRun属性,看看会发生什么。这里我们将使dependsOnThis测试用例失败。

import org.testng.Assert;
import org.testng.annotations.Test;
 
public class CodekruTest {
 
    @Test
    public void dependsOnThis() {
        Assert.assertTrue(false); // failing the test
    }
 
    @Test(dependsOnMethods = { "dependsOnThis" })
    public void testMethod() {
        System.out.println("testMethod is passed"); // this line will never be printed
    }
 
}

产出-

我们在运行testMethod后得到了上面的输出,因为我们可以看到testMethod()没有被执行,因为它的依赖方法(dependsOnThis)失败了。

现在,让我们尝试相同的代码,但我们将使用alwaysRun属性,看看会发生什么。

import org.testng.Assert;
import org.testng.annotations.Test;
 
public class CodekruTest {
 
    @Test
    public void dependsOnThis() {
        Assert.assertTrue(false); // failing the test
    }
 
    @Test(alwaysRun = true, dependsOnMethods = { "dependsOnThis" })
    public void testMethod() {
        System.out.println("testMethod is passed"); // now, this will be printed
    }
 
}

产出-

在这里,您可以看到,尽管dependsOnThis失败,testMethod测试仍然运行,与前面一样。这就是alwaysRun属性的功能。

我们有一个问题:每当我们在@Test注释中使用alwaysRun属性时,是否有必要传递dependsOnMethods或dependsOnGroups属性?

答案是肯定的,alwaysRun只有在我们传递了dependsOnMethodsdependsOnGroups属性的情况下才能工作。如果alwaysRun是在没有dependsOnMethods或dependsOnGroups属性的情况下编写的,它将被忽略因此,最好将其与dependsOnMethods或dependsOnGroups一起使用。

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注