We are running TestNG
tests using Gradle
on Jenkins
.
Job configuration:
Build section -> Invoke Gradle Script -> Use Gradle Wrapper -> Tasks:
clean test -Dgroups=myTestNGTestGroupName
In Jenkins
Console Output I can see the logs from execution of gradlew.bat
with specific parameters (one of them is -Dgroups=myTestNGTestGroupName
)).
We have quite a lot of Jenkins
jobs and automation Selenium
tests.
Since that on daily basis we are checking only failed jobs.
During refactoring tests TestNG
group name may be changed or typo may occur.
If you changed the test group name in test repository and forgot to update Jenkins
job:
0 tests are executed and job is still passing (build is successful).
How can I tell Jenkins
to mark build as non-successful if no tests were executed?
TestNG
generates testng-results.xml
file every time after test run
(even if 0 tests were executed).
We can analyze this file. The simplest solution which I found is using
Text-finder Plugin
(which in my case was already added to Jenkins
)
I added Jenkins Text Finder
in Post-build Actions
as follow:
How it looks in Jenkins
Console Output logs:
BUILD SUCCESSFUL
Total time: 42.105 secs
Build step 'Invoke Gradle script' changed build result to SUCCESS
Archiving artifacts
Checking <testng-results skipped="0" failed="0" total="0" passed="0">
c:\jenkins\workspace\my-job-name\build\reports\tests\testng-results.xml:
<testng-results skipped="0" failed="0" total="0" passed="0">
Build step 'Jenkins Text Finder' changed build result to UNSTABLE
...
Finished: UNSTABLE
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With