如何在Jenkins上运行TestNG测试

我正试图从Jenkins运行TestNG测试(在一个包含的Java项目中),但没有运气。

似乎Jenkins的TestNG插件( https://wiki.jenkins-ci.org/display/JENKINS/testng-plugin )只发布了TestNG测试的结果,但实际上并没有运行测试类……或者我错了吗?

在任何情况下,我如何在Jenkins的TestNG项目中实际运行TestNG测试,或者甚至可能? 例如,我是否必须使用命令行语句或批处理文件(在Windows Server 2008上)?

任何帮助非常感谢。

PS我尝试在Jenkins中输入一个post-build命令行,以便运行TestNG测试项目,但很难找到TestNG的类路径。 我发布了一个关于从命令行运行TestNG的早期问题,我无法正常工作,所以我放弃了这条路线:

如何从命令行运行TestNG

如上所述,请使用以下ant脚本来运行TestNGunit testing。 请调整以下代码以满足您的要求。

                               Running Tests...        

如果您遇到任何问题,请告诉我。 顺便说一句,请使用Jenking ant插件/任务来运行此脚本

完成此任务有两个步骤: –

步骤1:-

  1. 转到localhost:8080 / configure(Jenkins配置部分)

  2. 现在转到JDK部分并取消选中自动安装(如果你没有取消选中那么它会在每次可用时下载最新的java,并且可能导致构建失败)

  3. 将JAVA_HOME放在JAVA_HOME部分的名称部分和jdk主路径中

在此处输入图像描述

  1. 申请并保存

第2步:-

  1. 转到Jenkins并添加新项目,同时选择“Free Style Project”并单击Ok。

  2. 单击“高级项目选项”中的“高级”

  3. 现在选中选项: – “使用自定义工作区”并在“目录”部分中指定项目绝对路径

在此处输入图像描述

  1. 应用

  2. 现在去“Build”并选择“Execute windows batch command”

  3. 在命令列中输入批处理文件的文件名 在此处输入图像描述
  4. 申请并保存

现在转到Jenkins并选择您的Jenkins项目并单击Build 🙂

我使用gradle从Jenkins运行我的testNG测试。 看看gradle文档 。

我使用配置xml文件运行testNG测试。 看一下testNG文档 。

有很多东西要覆盖,所以我建议阅读这些来源,但我会从我的一个配置中提供一些相关的部分。

我的build.gradle中的相关部分

 tasks.withType(Test) { useTestNG { useDefaultListeners = true } options { outputDirectory = file('test-report') listeners << 'org.uncommons.reportng.JUnitXMLReporter' } testLogging.showStandardStreams = true systemProperties System.getProperties() systemProperty "org.uncommons.reportng.escape-output", "false" systemProperty "org.uncommons.reportng.title", "Test Report" ignoreFailures = true } task Smoke_Test(type: Test) { description "SmokeTest" options.suites("resources/testng-smoketest.xml") ignoreFailures = false } 

我的testNG xml如上所述'testng-smoketest.xml'

          

从Jenkins开始,作为“执行shell”构建步骤运行gradle任务,为方便起见,我使用gradle包装器。

 ./gradlew clean Smoke_Test 

确保您位于正确的目录中,'Smoke_Test'是build.gradle中指定的名称。

您可以使用testNG Jenkins插件来保存结果。

我还建议使用reportng来更好地格式化测试报告,这些报告也可以使用HTML Publisher插件在Jenkins中显示和保存。

尝试首先从本地计算机上的CLI运行,尝试调试从Jenkins运行时会让你发疯。