0

故事:所以我正在运行一个带有 TestNG 的 WebDriver2 测试套件,所有这些都捆绑在一个 Maven 架构中。我首先在 Eclipse 项目中构建了所有内容,然后将其转换为 Maven 项目。我不是程序员,但我可以通过 Java 破解自己的方式,我是 Maven 新手,但对 TestNG 和 Selenium 非常好,从我研究过的所有内容来看,我都在正确地处理这个问题,我必须错过一些愚蠢的东西。

问题:我在 Eclipse 中使用 Maven 插件运行这一切,当我将 POM 作为 TEST 运行时出现错误:

org.testng.TestNGException: Parameter 'dataMode' is required by @Configuration of method prepareDriver but has not been marked @Optional or defined

因此,因此为 SureFire 设置 POM 以获取我的文件,也设置了 testNG 依赖项并且似乎可以工作,因为我的错误来自 TestNG 本身:

<plugins>
    [...]
      <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-surefire-plugin</artifactId>
        <version>2.12</version>
        <configuration>
          <suiteXmlFiles>
            <suiteXmlFile>src\test\resources\testng.xml</suiteXmlFile>
          </suiteXmlFiles>
        </configuration>
      </plugin>
    [...]
</plugins>

我也将参数传递给了这个插件:

          <systemPropertyVariables>
            <dataMode>Custom</dataMode>
          </systemPropertyVariables>
          <systemPropertyVariables>
            <log_level>DEBUG</log_level>
          </systemPropertyVariables>

我的 TestNG 文件中的所有内容都是正确的,如果我只是从 testng.xml 中作为 TestNG 测试运行,那么所有内容都按预期运行,如果您想要该代码,我将更新但该部分有效,参数在那里正确。

此外,当我将 POM 作为 TEST 执行时,我得到一个报告,指出 11 个测试中有 2 个失败......我没有 11 个测试,如果你通过我的 testNG.xml 我只有 2 个 @Test 会找到,我认为它正在计算我的测试套件这一部分中的每个 TestNG 注释......

我的理论是,它试图在没有 TestNG 文件的情况下运行,并且只是在它找到的任何文件中运行每个 TestNG 注释,但我没有设置它来执行此操作,还是我这样做?

4

1 回答 1

0

尝试这样的事情:

        <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-surefire-plugin</artifactId>
            <version>2.19</version>
            <configuration>
                <suiteXmlFiles>
                    <suiteXmlFile>testng.xml</suiteXmlFile>
                </suiteXmlFiles>
                 <systemProperties>
                    <property>
                    </property>
                </systemProperties>
            </configuration>
        </plugin>
于 2016-02-09T12:56:52.963 回答