Maven 当从cmd运行单个类或测试时,@Configuration on方法需要参数“baseUrl”
在我的项目中,从命令行运行测试并没有什么问题。我使用Java+TesNG+Maven。当我从cmd执行mvnclean测试时,一切正常,我的所有测试用例都运行良好。当我尝试只运行一个类或一个测试方法f.e.mvn clean test-Dtest=LoginTest时,就会出现问题。在这之后,我得到了这个错误:参数'baseUrl'是OpenUrlBeforeAchTest方法的@Configuration所必需的,但没有被标记为@Optional或定义。当我尝试运行特定的测试时,testng.xml文件似乎被忽略了。为什么?我做错什么了 以下是pom.xml中的surefire插件:Maven 当从cmd运行单个类或测试时,@Configuration on方法需要参数“baseUrl”,maven,parameters,testng,Maven,Parameters,Testng,在我的项目中,从命令行运行测试并没有什么问题。我使用Java+TesNG+Maven。当我从cmd执行mvnclean测试时,一切正常,我的所有测试用例都运行良好。当我尝试只运行一个类或一个测试方法f.e.mvn clean test-Dtest=LoginTest时,就会出现问题。在这之后,我得到了这个错误:参数'baseUrl'是OpenUrlBeforeAchTest方法的@Configuration所必需的,但没有被标记为@Optional或定义。当我尝试运行特定的测试时,testng.
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-surefire-plugin</artifactId>
<version>2.18.1</version>
<dependencies>
<dependency>
<groupId>org.apache.maven.surefire</groupId>
<artifactId>surefire-testng</artifactId>
<version>2.18.1</version>
</dependency>
</dependencies>
<configuration>
<suiteXmlFiles>
<suiteXmlFile>src/main/resources/testng.xml</suiteXmlFile>
</suiteXmlFiles>
<systemPropertyVariables>
<environment>${browser}</environment>
</systemPropertyVariables>
</configuration>
</plugin>
testng.xml
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE suite SYSTEM "http://testng.org/testng-1.0.dtd" >
<suite name="suite" verbose="2">
<parameter name="baseUrl" value="https://someurl"></parameter>
<test name="sometest">
<packages>
<package name="test.pages" />
</packages>
</test>
</suite>
特定测试类
public class LoginTest extends AbstractPageTest<LoginTest> {
private LoginPage loginPage;
@BeforeMethod
@Parameters({ "baseUrl" })
public void openUrlBeforeEachTest( String baseUrl) {
Driver().get(baseUrl);
}
@AfterMethod
@Parameters({ "baseUrl" })
public void deleteCookiesAfterAllTests( String baseUrl) {
Driver().manage().deleteAllCookies();
}
@Test(priority = 0)
@Parameters({ "user", "pass" })
public void login(String user, String pass) {
loginPage = new LoginPage(Driver()).get();
loginPage.login(user, pass);
Assert.assertEquals(Driver().getTitle(), "The page title");
}
}