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

时间:2015-02-19 11:50:20

标签: maven parameters testng

我在项目中从命令行运行测试没有什么问题。我使用Java + TesNG + Maven。当我从cmd执行“mvn clean test”时,一切正常,我的所有测试用例都运行良好。当我尝试仅运行一个类或仅运行一个测试方法时出现问题。 “mvn clean test -Dtest = LoginTest”。之后我收到了这个错误:“参数'baseUrl'是@Configuration对方法openUrlBeforeEachTest所必需的,但尚未标记为@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");
   }
}

0 个答案:

没有答案