This plugin can be used to both execute and report on FitNesse tests so that they can be integrated into a Jenkins build.
Contributions are welcome, both bug fixes and new features. Just raise a pull request via GitHub.
- You could define a JDK installation (not mandatory). All JDKs will be available in the job configuration.
- If your job runs on a remote node and launches FitNesse, you should add the HOST_NAME environment variable in the node configuration and set its value to the node’s hostname or IP. You can name it as fitnesse.yourdomain.com (whatever you like). This environment variable will be used when you set up the fitnesse instance below (it will replace localhost by the content of HOST_NAME).
Note: If you have the EnvInject plugin installed, Environment variables configured like in the image will not work. Use the EnvInject way instead. You will notice this by fitnesse still trying to connect to localhost, instead of the content in HOST_NAME.
- You could also override JDK location used, by set a Tool location:
or by overridden JAVA_HOME environment variable.
- For existing FitNesse instance: host and port where FitNesse is running
- For new FitNesse instance:
- JDK: selected JDK, JVM args and Java working directory
- Paths: fitnesse.jar and FitNesseRoot path
- Fitnesse: port use and command line args
- In all cases:
- Target page
- HTTP and test timeout
- Results file name
- Results file name: the name of the result file ; if there is several files, you can use wildcards.
- On project page : a new chart with result trend and a little summary
- All tests result in a page:
- And finally, captured details of a test:
The plugin supports pipeline the following way:
With some sample values, this step looks like this:
step([ $class: 'FitnesseBuilder', options: [ fitnessePathToRoot: "", additionalFitnesseOptions: "-v", // -v for verbose fitnesseTestTimeout: '', fitnesseStart: 'true', fitnesseHttpTimeout: '', fitnesseJavaOpts: '', fitnessePathToJar: "/opt/var/fitnesse/lib/fitnesse-20180127-standalone.jar", fitnesseTargetPage: "suiteMyTestSuite", fitnessePartitionEnabled: 'false', fitnessePartitionCount: '2', fitnessePartitionIndex: '0', fitnessePartitionIndexFile: '', fitnessePathToXmlResultsOut: 'fitnesse-results.xml', fitnessePathToJunitResultsOut: 'fitnesse-junit-results.xml', fitnessePortLocal: '8083', fitnesseJavaWorkingDirectory: "/opt/var/fitnesse/lib/" ]])
step([ $class: 'FitnesseResultsRecorder', fitnessePathToXmlResultsIn: 'fitnesse-results.xml' ])
- Run fitnesse tests using "-c" option when starting new fitnesse instance
- Add more control over fitnesse start-up params
- Using glob to collect (potentially) multiple results.xml files
- Nest Sub-suites and tests-within-suites within the uber-parent FitnesseResults instance
- Allow direct URL access to sub-suites and tests-within-suites so that every level can have its history graph
- Run multiple test suites from one project configuration
Older versions of this plugin may not be safe to use. Please review the following changelog before using an older version:
- 1.36 (2020-01-16)
- 1.35 (2022-01-09)
- 1.33 (2020-04-04)
- Fixed: Stored XSS vulnerability
- 1.31 (2020-02-12)
- Fixed: XXE vulnerability
- 1.30 (2019-09-19)
- 1.29 (2019-08-11)
- Added: Produces junit report results from the fitnesse results (PR-36)
- Fixed: FitNesse history is not rendering on builds generated by latest plugin versions
- 1.25 (2018-12-05)
- Fixed: FitNesse history not rendering in some cases
- 1.24 (2018-11-08)
- Added: Support for remote FitNesse over HTTPS (PR-27)
- Added: Add environment variables support for fitnesse hostname and port (PR-28)
- Added: Feature/pipeline compatibility (PR-30)
- Improvement: Try to gracefully terminate the running test in case of an exception (PR-31)
- Added: Ability to access to a protected remote Fitnesse (PR-32)
- Fixed: Fixes for JEP-200 (PR-35)
- 1.16 (2015-06-26)
- Fixed FitNesse 1.13 does not render properly FitNesse history (JENKINS-29019)
- 1.15 (2015-06-22)
- 1.14 (2015-06-21)
- 1.13 (2015-06-02)
- 1.12 (2015-03-31)
- 1.11 (2014-11-10)
- Improve result table and captured detail renderer (pull request)
- 1.10 (2014-10-27)
- Fixed: avoid OOM on hudge result files (pull request)
- Fixed: support Jenkins agent with a different OS than master's one (pull request)
- Fixed: avoid NPE when no JDK is defined in global configuration (pull request)
- Added: retrieve and display duration for all tests (pull request)
- Fixed: test port availability to check if FitNesse is started instead of scraping stdout (pull request)
- 1.9 (2014-03-26)
- 1.8 (2013-10-21)
- Added support for multiple FitNesse reports and drilling down into HTML output (pull request)
- Report exceptions as failures
- Upgrade minimum Jenkins version from 1.353 to 1.401 to benefit from bug fixes in hudson.Proc
- Added support for FitNesse options -d, -r & -p.
- Added ability to specify path to fitnesse.jar and path to FitNesseRoot relative to the workspace
- Fixed bug where counts with X right and Y ignores were being treated as ignored not right
- Added ability to specify HTTP timeout (default: 60,000 ms)
- Added ability to specify java working directory (default: location of fitnesse.jar)
- Added page or suite name to build page summary link
- Added prettier tabular format for results
- Results file without path will be written to / read from workspace
- Log incremental console output as FitNesse results are coming in over HTTP
- Fixed: Unable to unpack fitnesse.jar
- Fixed: Build hangs when http get stalls
- Fixed: Unexpected EOF while reading http bytes
- Fixed: unable to parse xml with BOM: error "
content is not allowed in prolog"
- Fixed: unable to parse xml with BOM: error "
- Brand new