簡體   English   中英

Maven 運行 testng 測試時不執行 BeforeGroups 方法

[英]BeforeGroups method is not executed when running testng tests by maven

我看到標有“@BeforeGroups”的方法不是由 .

Java測試類:

import org.testng.annotations.Test;

import static org.testng.Assert.fail;

@Test(groups = "http")
public class MyIT {

    @Test(groups = "http")
    public void method1() {
        System.out.println("test 1 - value from TestServerConfigurator: "
            + TestServerConfigurator.getSomeString());
    }
}

在同一個包中 - 配置服務器的類:

public class TestServerConfigurator {
    private static String someString;

    @BeforeGroups(groups = "http")
    public static void init() {
        System.out.println("initializing server...");
        someString = "value set!";
    }

    @AfterGroups(groups = "http")
    public static void after() {
        System.out.println("stopping server...");
    }

    public static String getSomeString() {
        return someString;
    }
}

pom.xml 文件:

<project xmlns="http://maven.apache.org/POM/4.0.0"
         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0
           http://maven.apache.org/maven-v4_0_0.xsd">
    <modelVersion>4.0.0</modelVersion>
    <groupId>org.alskor</groupId>
    <artifactId>mytests</artifactId>
    <version>1.0-SNAPSHOT</version>
    <name>mytests</name>
    <build>
        <plugins>
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-failsafe-plugin</artifactId>
                <version>2.19.1</version>
                <configuration>
                    <groups>http</groups>
                </configuration>
                <executions>
                    <execution>
                        <goals>
                            <goal>integration-test</goal>
                            <goal>verify</goal>
                        </goals>
                    </execution>
                </executions>
            </plugin>
        </plugins>
    </build>
    <dependencies>
        <dependency>
            <groupId>org.testng</groupId>
            <artifactId>testng</artifactId>
            <version>6.9.10</version>
            <scope>test</scope>
        </dependency>
    </dependencies>
</project>

跑步:

mvn 集成測試

[INFO] --- maven-failsafe-plugin:2.19.1:integration-test (default) @ mytests ---

-------------------------------------------------------
 T E S T S
-------------------------------------------------------
Running MyIT
test 1 - value from TestServerConfigurator: null
Tests run: 1, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 0.218 sec - in MyIT

Results :

Tests run: 1, Failures: 0, Errors: 0, Skipped: 0

來自Maven 故障安全插件 - 測試的包含和排除

默認情況下,Failsafe 插件將自動包含所有具有以下通配符模式的測試類:

  • "**/IT*.java" - 包括其所有子目錄和所有以“IT”開頭的 Java 文件名。
  • "**/*IT.java" - 包括其所有子目錄和所有以“IT”結尾的 Java 文件名。
  • "**/*ITCase.java" - 包括其所有子目錄和所有以“ITCase”結尾的 Java 文件名。

由於TestServerConfigurator類名與任何默認包含模式都不匹配,因此它被從您的測試運行中排除。

您可以將TestServerConfigurator重命名為與默認模式匹配的內容(即ITTestServerConfiguratorTestServerConfiguratorITTestServerConfiguratorITCase )或定義您自己的包含模式:

            <configuration>
                <includes>
                    <include>**/*IT.java</include>
                    <include>**/*Configurator.java</include>
                </includes>
                <groups>http</groups>
            </configuration>

如果我用這個替換“配置”部分,我看到它有效:

    <configuration>
        <groups>http</groups>
        <includes>
            <include>*</include>
        </includes>
    </configuration>

我認為“包含”部分旨在僅列出測試而不是所有應該對 testng 可見的類,但顯然情況並非如此。

面臨同樣的問題。 @Test(groups = "http")到您的TestServerConfigurator

嘗試根據您的系統瀏覽器更新ChromeDriver版本。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM