我试图从Jenkins那里运行TestNG测试(在一个包含Java的项目中),但没有成功。
看起来好像是Jenkins的TestNG插件(https://wiki.jenkins-ci.org/display/JENKINS/testng-plugin)只发布TestNG测试的结果,但不实际运行测试类。。。还是我错了?
在任何情况下,我如何在与Jenkins的TestNG项目中实际运行TestNG测试,或者这是可能的吗?例如,我是否必须使用命令行语句或批处理文件(在Windows Server 2008上)?
非常感谢您的帮助。
注意:我曾尝试在Jenkins中输入一个构建后命令行,让项目运行TestNG测试,但很难找到TestNG的类路径。我之前发布了一个关于从命令行运行TestNG的问题,但我无法解决,因此我放弃了这条路线:
如何从命令行运行TestNG
如上所述,请使用以下ant脚本运行TestNG单元测试。请调整以下代码以满足您的要求。
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<project basedir="." default="build" name="Ant Play">
<property name="classes.dir" value="bin" />
<property name="report.dir" value="test-output" />
<path id="classpath">
<fileset dir="lib">
<include name="**/*.jar"/>
</fileset>
<pathelement path="${basedir}\${classes.dir}"/>
</path>
<target name="init">
<mkdir dir="${classes.dir}"/>
<copy includeemptydirs="false" todir="${classes.dir}">
<fileset dir="src">
<exclude name="**/*.java"/>
</fileset>
</copy>
</target>
<target name="clean">
<delete dir="${classes.dir}"/>
</target>
<target depends="clean" name="cleanall"/>
<target depends="build-project" name="build"/>
<target depends="init" name="build-project">
<echo message="${ant.project.name}: ${ant.file}"/>
<javac debug="true" includeantruntime="false" destdir="${classes.dir}">
<src path="src"/>
<classpath refid="classpath"/>
</javac>
</target>
<target depends="build" name="runTests" description="Running tests" >
<echo>Running Tests...</echo>
<taskdef resource="testngtasks" classpathref="classpath"/>
<testng outputDir="${report.dir}"
haltonfailure="true"
useDefaultListeners="false"
listeners="org.uncommons.reportng.HTMLReporter"
classpathref="classpath">
<xmlfileset dir="${basedir}" includes="testng.xml"/>
<!--<classfileset dir="${classes.dir}" includes="**/*.class" />-->
</testng>
</target>
</project>
让我知道,如果你遇到任何问题。顺便说一句,请使用Jenkins ant插件/任务来运行这个脚本
我用gradle来运行Jenkins的testNG测试。看看gradle医生。
我使用配置xml文件运行testNG测试。看看testNG文档。
有相当多的内容需要涵盖,所以我建议阅读这些资料,但我将提供我的一个配置中的一些相关部分。
我构建的相关部分。格拉德尔
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 xmltestng-smoketest.xml
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE suite SYSTEM "http://testng.org/testng-1.0.dtd" >
<suite name="Smoke Tests" >
<test name="BootCheck" parallel="false" thread-count="1">
<classes>
<class name="com.x.automation.y.tests.smoke.BootCheck" />
</classes>
</test>
</suite>
从Jenkins开始,作为运行gradle任务的“执行shell”构建步骤,为了方便起见,我使用了gradle包装器。
./gradlew clean Smoke_Test
确保您在正确的目录中,Smoke_Test是build.gradle.中指定的名称
您可以使用testNG Jenkins插件来保存您的结果。
我还建议使用Reporting对测试报告进行良好的格式化,也可以使用HTML Publisher插件在Jenkins中显示和保存测试报告。
试着让它先从本地机器上的CLI运行,从Jenkins运行时尝试调试会让你发疯。
完成这项任务有两个步骤:-
第一步:-
>
转到localhost:8080/configure(Jenkins配置部分)
现在转到JDK部分,取消选中Install automatically(如果您没有取消选中,那么每次有最新的java可用时,它都会下载,这可能会导致构建失败)
将JAVA_HOME放在name部分,将jdk HOME路径放在JAVA_HOME部分
第二步:-
>
转到Jenkins并添加新项目,也选择自由样式项目并单击确定。
点击"高级在"高级项目选项"
现在选中选项:-“使用自定义工作区”,并在目录部分指定项目的绝对路径
申请
现在转到“构建”并选择“执行windows批处理命令”
现在去詹金斯,选择你的詹金斯项目,然后点击构建:)
问题内容: 我正在尝试从Jenkins运行TestNG测试(在一个包含的Java项目中),但是没有运气。 似乎Jenkins的TestNG插件(https://wiki.jenkins-ci.org/display/JENKINS/testng- plugin )仅发布TestNG测试的结果,但实际上不运行测试类…或我错了吗? 无论如何,我如何在Jenkins的TestNG项目中实际运行TestN
我正在为企业环境构建Selenium自动化套件的最后阶段工作。它配置了TestNG,在Jenkins上运行。该套件主要由UI测试组成。作为这种设置的典型,测试是不稳定的,在我们的时间范围内,重新处理测试以减少对UI自动化的依赖是不可行的。 鉴于我已经在进行代码优化,我想设置一些自动重新运行失败测试的东西,以最大限度地减少手动调查失败的需要。我已经调查了几个选项,但没有一个适合我们的设置: 一个理想
问题内容: 我正在尝试从Jenkins运行TestNG测试(在一个包含的Java项目中),但是没有运气。 似乎Jenkins的TestNG插件(https://wiki.jenkins-ci.org/display/JENKINS/testng- plugin )仅发布TestNG测试的结果,但实际上不运行测试类…或我错了吗? 无论如何,我该如何在Jenkins的TestNG项目中实际运行Test
我正在使用Java、Selenium、Maven和TestNG来执行自动化测试。我正在使用Jenkins克隆GitHub repo并在构建启动时启动测试。目前,我对一个项目中的几个应用程序进行了测试。我的testng.xml文件如下所示,“appone”是一个应用程序,“apptwo”是另一个应用程序,它们都运行“生产”分组测试。 或者,为每个应用程序创建一个单独的项目,从而使用单独的testng
问题内容: 我想使用Jenkins运行用TestNG框架编写的Selenium测试。 在jenkins job(Freestyle project)中配置的命令: 注意:对于,给定目录路径 当我运行作业(选项)时,它被Selenium的create session活动打中并给出错误。 注意: 同样的命令运行 成功地 从运行时 的命令行 。 控制台输出的错误日志: (jenkins) 以下是测试课程
我想使用Jenkins运行在TestNG框架中编写的Selenium测试。 jenkins作业(Freestyle项目)中配置的命令: 控制台输出的错误日志:(jenkins) 下面是测试类: 以下是: null