![](/img/trans.png)
[英]TestNG: @BeforeGroups gets called for every group entry even though I am running one group of tests
[英]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
默認情況下,Failsafe 插件將自動包含所有具有以下通配符模式的測試類:
"**/IT*.java"
- 包括其所有子目錄和所有以“IT”開頭的 Java 文件名。"**/*IT.java"
- 包括其所有子目錄和所有以“IT”結尾的 Java 文件名。"**/*ITCase.java"
- 包括其所有子目錄和所有以“ITCase”結尾的 Java 文件名。
由於TestServerConfigurator
類名與任何默認包含模式都不匹配,因此它被從您的測試運行中排除。
您可以將TestServerConfigurator
重命名為與默認模式匹配的內容(即ITTestServerConfigurator
、 TestServerConfiguratorIT
或TestServerConfiguratorITCase
)或定義您自己的包含模式:
<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.