"Generating reports via build.xml"和"Generating via pom.xml"有什么区别?



早些时候我使用build.xml(ant(来运行我的测试用例,但现在我使用pom.xml(maven(来运行测试用例。
当我有蚂蚁时,我能够获得testng-xslt报告,但是在阅读了许多博客和教程后,我无法通过pom生成。我想调查有什么区别,我看到我的班级路径中有撒克逊.jar,但在 pom 中缺少它.xml所以我添加了一个依赖项。第二件事,我注意到我没有在pom.xml中指定.xml路径(我不知道在pom中添加它(。我同时提供pom.xml和build.xml在这里,请同时查看两者,并让我知道我错过了通过pom生成testng-xslt报告的内容.xml但它存在于build中.xml以及我如何解决这个问题。
构建.xml

    <target name="testng-xslt-report">
            <delete dir="${basedir}/testng-xslt">
            </delete>
            <mkdir dir="${basedir}/testng-xslt">
            </mkdir>
            <xslt in="${basedir}/test-output/testng-results.xml" style="${basedir}/testng-results.xsl" out="${basedir}/testng-xslt/index.html">
                <param expression="${basedir}/testng-xslt/" name="testNgXslt.outputDir" />
                <param expression="true" name="testNgXslt.sortTestCaseLinks" />
                <param expression="FAIL,SKIP,PASS,CONF,BY_CLASS" name="testNgXslt.testDetailsFilter" />
                <param expression="true" name="testNgXslt.showRuntimeTotals" />
                <classpath location="D:automationwindowsprojectzookeeperlibsaxon-8.7.jar">
                </classpath>
            </xslt>
    </target> 

绒球.xml

<build>
        <testResources>
            <testResource>
                <directory>src/test/resource</directory>
                <excludes>
                    <exclude>**/*.java</exclude>
                </excludes>
            </testResource>
        </testResources>
        <plugins>
            <plugin>
                <artifactId>maven-surefire-plugin</artifactId>
                <version>2.12.4</version>
                <configuration>
                    <suiteXmlFiles>
                        <suiteXmlFile>
                            C:/Users/windowspc/workspace/windows-project/Chrome.xml
                        </suiteXmlFile>
                    </suiteXmlFiles>
                    <testFailureIgnore>
                        true
                    </testFailureIgnore>
                </configuration>
            </plugin>
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-compiler-plugin</artifactId>
                <version>2.3.2</version>
                <configuration>
                    <source>1.6</source>
                    <target>1.6</target>
                </configuration>
            </plugin>
        </plugins>
    </build>
    <reporting>
        <plugins>
            <plugin>
                <groupId>org.testng.xslt</groupId>
                <artifactId>testng-xslt-plugin</artifactId>
                <version>1.1</version>
                <configuration>
                    <outputDir>C:/Users/windowspc/workspace/windows-project/target/testng-xslt-report</outputDir>
                    <showRuntimeTotals>true</showRuntimeTotals>
                    <sortTestCaseLinks>true</sortTestCaseLinks>
                    <testDetailsFilter>FAIL,PASS,SKIP,CONF</testDetailsFilter>
                </configuration>
            </plugin>
        </plugins>
    </reporting>
    <pluginRepositories>
        <pluginRepository>
            <id>testng-xslt-plugin</id>
            <url>http://uhftopic.com/maven/</url>
        </pluginRepository>
    </pluginRepositories>
    ...
    ...
        <dependency>
            <groupId>net.sourceforge.jexcelapi</groupId>
            <artifactId>jxl</artifactId>
            <version>2.6.12</version>
        </dependency>
        <dependency>
            <groupId>net.sf.saxon</groupId>
            <artifactId>saxon</artifactId>
            <version>8.7</version>
        </dependency>
        <dependency>
            <groupId>org.testng</groupId>
            <artifactId>testng</artifactId>
            <version>6.5.2</version>
            <scope>test</scope>
        </dependency>
    </dependencies>
</project>

这个插件有一个新版本。它是 groupId/artifactId 已更改。以下是您可以使用的内容:

<groupId>org.reportyng</groupId>
<artifactId>reporty-ng</artifactId>
<version>1.2</version>

这是项目网站: https://github.com/cosminaru/reporty-ng/wiki/MavenPlugin

这是 github 存储库:https://github.com/cosminaru/reporty-ng 插件存储库现在在这里:

  <pluginRepository>
      <id>reporty-ng</id>
      <url>https://github.com/cosminaru/reporty-ng/raw/master/dist/maven</url>
  </pluginRepository>

蚂蚁和maven之间的主要区别是:

  • Maven 使用约定优于配置
  • 蚂蚁需要完全配置

这意味着使用 ant,您可以轻松地执行任何需要的操作,但是您必须编写 ant 脚本才能实现所需的内容。另一方面,使用 maven 对你的项目结构做出很多假设,如果你的项目结构符合这些假设:你可以做很多有用的工作,比如构建、测试、打包、生成文档,而你的 pom 中几乎没有任何东西.xml。

使用maven要理解的一件重要事情是生命周期的概念。maven定义了3个生命周期:清洁生命周期,默认生命周期和站点生命周期。

    清洁
  • :使用它来清洁任何以前构建的产品
  • 默认:使用它来生成、测试、打包项目
  • 站点:使用它来生成文档和报告

每个生命周期都是一系列阶段。此外,每个阶段都绑定了一个插件目标(插件目标在某些时候类似于蚂蚁目标(。生命周期的概念引入了插件执行之间的依赖关系(因此您不必指定它(。例如,maven 知道它必须在运行测试之前编译源代码和测试源代码。

在您的情况下:您需要生成一份报告,因此可以在站点-lyfe-循环期间完成。您需要根据测试结果生成报告,因此需要在生成报告之前运行测试。要做到这一点,只需运行这个maven命令:

mvn clean test site:site

此命令指示 maven 到:

    清洁
  • 任何以前的构建产品(清洁生命周期(
  • 运行测试
  • (默认生命周期((Maven知道它必须在运行测试之前进行编译(
  • 使用文档生成一个站点,并且由于您已经定义了一个报告插件:它将在站点生成期间执行。

您将在目标/站点目录下找到您的报告。

另一件需要注意的事情:saxon 依赖项是插件的依赖项,而不是项目依赖项,因此您必须在 <plugin> 元素下指定它:

        <plugin>
            <groupId>org.testng.xslt</groupId>
            <artifactId>testng-xslt-plugin</artifactId>
            <version>1.1</version>
            <configuration>
                <outputDir>C:/Users/windowspc/workspace/windows-project/target/testng-xslt-report</outputDir>
                <showRuntimeTotals>true</showRuntimeTotals>
                <sortTestCaseLinks>true</sortTestCaseLinks>
                <testDetailsFilter>FAIL,PASS,SKIP,CONF</testDetailsFilter>
            </configuration>
            <dependencies>
                <dependency>
                  <groupId>net.sf.saxon</groupId>
                  <artifactId>saxon</artifactId>
                  <version>8.7</version>
                </dependency>
            </dependencies>
        </plugin>

相关内容

  • 没有找到相关文章

最新更新