Jenkins中TestOutput文件夹缺失 如何生成含TestNG报告的对应文件夹
TestNG TestOutput文件夹Jenkins环境未生成解决方案
1. 对齐本地与Jenkins的测试执行配置
本地IDE运行TestNG时会默认启用内置监听器、自动生成报告目录,Jenkins环境需要显式配置对应规则:
- 若使用Maven构建,需在
pom.xml中配置maven-surefire-plugin指定输出路径与监听器:
<plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-surefire-plugin</artifactId> <version>3.1.2</version> <configuration> <suiteXmlFiles> <suiteXmlFile>testng.xml</suiteXmlFile> </suiteXmlFiles> <properties> <property> <name>usedefaultlisteners</name> <value>true</value> </property> <property> <name>listener</name> <value>org.testng.reporters.XMLReporter,org.testng.reporters.EmailableReporter</value> </property> </properties> <reportsDirectory>${project.basedir}/TestOutput</reportsDirectory> </configuration> </plugin>
- 若使用Gradle构建,需在
build.gradle中添加TestNG报告输出配置:
test { useTestNG() { suites 'testng.xml' useDefaultListeners = true } reports { xml.outputLocation = file("${projectDir}/TestOutput/report.xml") html.outputLocation = file("${projectDir}/TestOutput/html") } }
- 若直接通过Java命令执行测试,命令需显式指定输出目录:
java -cp 你的依赖类路径 org.testng.TestNG -d TestOutput testng.xml
2. 检查Jenkins工作目录权限
- Jenkins运行使用的系统账户(默认多为
jenkins用户)需要对工作空间目录有读写权限,无权限会导致文件夹生成失败 - 可在构建步骤最前面添加目录初始化命令:
- Linux/macOS节点:
mkdir -p ${WORKSPACE}/TestOutput && chmod 755 ${WORKSPACE}/TestOutput - Windows节点:
mkdir %WORKSPACE%\TestOutput
- Linux/macOS节点:
3. 确认测试阶段未被跳过
- 检查Jenkins构建命令是否包含
-DskipTests、-Dmaven.test.skip=true这类跳过测试的参数,测试未执行不会生成报告 - 查看构建日志,搜索
TestNG关键词确认测试任务正常触发、无提前终止的报错
4. 可选:配置Jenkins报告归档
如果需要在Jenkins页面直接查看测试结果,可安装TestNG插件后,在构建后操作中添加「Publish TestNG results」,报告路径填写**/TestOutput/report.xml即可。
内容的提问来源于stack exchange,提问作者Selenium tester
相关产品推荐
相关产品推荐

