Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/maven/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Maven 当从cmd运行单个类或测试时,@Configuration on方法需要参数“baseUrl”_Maven_Parameters_Testng - Fatal编程技术网

Maven 当从cmd运行单个类或测试时,@Configuration on方法需要参数“baseUrl”

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.

在我的项目中,从命令行运行测试并没有什么问题。我使用Java+TesNG+Maven。当我从cmd执行mvnclean测试时,一切正常,我的所有测试用例都运行良好。当我尝试只运行一个类或一个测试方法f.e.mvn clean test-Dtest=LoginTest时,就会出现问题。在这之后,我得到了这个错误:参数'baseUrl'是OpenUrlBeforeAchTest方法的@Configuration所必需的,但没有被标记为@Optional或定义。当我尝试运行特定的测试时,testng.xml文件似乎被忽略了。为什么?我做错什么了

以下是pom.xml中的surefire插件:

<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");
   }
}