Plugin Information |
---|
View FitNesse on the plugin site for more information. |
Contributions are welcome, both bug fixes and new features. Just raise a pull request via GitHub.
Configuration
Global
- You could define a JDK installation (not mandatory). All JDKs will be available in the job configuration.
Slave node
- If your job runs on a slave and launch FitNesse, you should add the HOST_NAME environment variable in slave configuration and set its value to the slave’s hostname or IP. You can name it as FITNESSE_HOST_NAME (whatever you like). This environment variable will be used when you set up fitnesse instance below (replace localhost by $FITNESSE_HOST_NAME).
- You could also override JDK location used, by set a Tool location:
or by overridden JAVA_HOME environment variable.
Usage
Project settings in build step
- 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
Project settings in post-build step
- Results file name: the name of the result file ; if there is several files, you can use wildcards.
Result
- 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:
Todo
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
Change Log
- 1.28 (2019-01-12)
Added: Produces junit report results from the fitnesse results (PR-36)
- 1.27 (2018-12-20)
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)
Improvement: Add ability to define fitnesse port as enironment variable (JENKINS-27955)
Fixed: FitNesse History doesn't render properly (JENKINS-29019)
Clean code: remove useless library, remove warnings and deprecated methods
- 1.14 (2015-06-21)
Fixed: In result detail page, can't expand collapsed scenario (JENKINS-27938)
Fixed: manage JDK 1.8 (increase core plugin version)
Fixed: manage severals FitNesse test results in the same job (JENKINS-27936 - pull request)
- 1.13 (2015-06-02)
Fixed: manage FitNesse old versions (without summary and page duration fields in XML result) (JENKINS-28316)
Improve FitNesse History page: reverse column order & add sort on column header
Fixed: use FitNesse plugin with contionnal steps(multiple) plugin (JENKINS-21636)
- 1.12 (2015-03-31)
Improve captured detail renderer (use FitNesse CSS & JS)
Added: FitNesse tests history page (pull request)
Fixed: execution of test page (pull request)
- 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 slave 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)
Fixed: launch FitNesse if no JDK is configured in Jenkins (pull request)
Improve performance on huge result file (pull request)
- 1.8 (2013-10-21)
Added support for Jenkins slaves (pull request)
Expose FitNesse tests results throught Jenkins API (pull request)
Selectable JDK for FitNesse (pull request)
Configuration bugfix (pull request)
- 1.7
Fixed: avoid NPE when build aborts prematurely and produces no results (pull request)
Use the HTTP timeout inside the connection (pull request)
Don't show broken image when no test results are available (pull request)
- 1.6
Added support for multiple FitNesse reports and drilling down into HTML output (pull request)
- 1.5
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.
- 1.4
Added ability to specify path to fitnesse.jar and path to FitNesseRoot relative to the workspace
- 1.3.1
Fixed bug where counts with X right and Y ignores were being treated as ignored not right
- 1.3
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
- 1.2
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
catch IOException
- 1.1
Fixed: unable to parse xml with BOM: error "
content is not allowed in prolog
"
- 1.0
Brand new
58 Comments
Unknown User (carsten.pfeiffer@gebit.de)
Thanks a lot for the fitnesse plugin! Would it be possible to add support for more than one fitnesse result file? Currently, it is only possible to specify a path to one result file. The other plugins for displaying testresults typically accept an ant path specification, e.g. something like testresults/**/fitnesse-*.xml.
Thanks,
Carsten
Unknown User (prime8)
That would certainly be possible - I'm also curious as to where the multiple XML files are coming from, can you help me to understand the scenario a bit more?
Tim
Unknown User (carsten.pfeiffer@gebit.de)
Cool, looking forward to that! The scenario is simply that we have multiple test suites that each produce their own results file. In other cases we are testing different variants and each variant results in one results file.
Thanks,
Carsten
prulli -
How about a option where I can run FitNesse myself and have the plug-in only deal with the post build reporting stuff?
thanks for the work!
Paul
Unknown User (prime8)
You can already do that - at the bottom of the project configuration page under "Post-build options" select "Publish Fitnesse results report" and just point to the fitnesse XML results.
HTH
Unknown User (kevin.vranken@cegeka.be)
I was wondering whether it was possible to edit the FitNesse startup parameters ? You don't seem to have much control over them the way it is now, aside from the directory and the suite . Could a feature like that be added in the future.
Thanks
Unknown User (børge)
I really like the idea of a Hudson plugin rather using the maven fitnesse plugin, that we are using now in our project.
But I have some suggestions for improvements, since we have a lot of test suites.
What about making it easier to add new test suites running in the same environment (Host, port, and all are suites) ?
Instead of having to add new build steps for each suite running in the same environment, could it be possible to add a list of tests to run within the same buildstep?
The list of build steps can be quite long, and hard to edit.
And as I can see it is only possible to view a single result file.
I tried to specify the same result file for each suite hoping that each step should append to the same file, but is seems like each build step overwrites each other.
What about letting the plugin decide the result file name for each test, and letting the Hudson plugin display all of them?
Thanks
Børge
Unknown User (prime8)
Added to the backlog!
Unknown User (jperkelens@gmail.com)
How about the ability to use Hudson variables in the Suite name. This is a major issue for me as I'd like to run a configuration matrix with different suites as an axis. However, since I cannot do this I have to manually call fitnesse -c and then parse the results myself.
Unknown User (thang)
I'd like to second the idea of FitNesse startup parameters like "-e 0" or "-o" as we don't need to retain older versions or update from fitnesse server.
Unknown User (michael grant)
Having had a play with this plugin, I mostly like what I see with it, but there does seem to be one bug which limits its usefulness to me at present: The test suite build only fails if there are failures in FitNesse; exceptions thrown in FitNesse do not cause the build to fail.
Unknown User (michael grant)
FWIW, I achieved the above result by adding the following to FitnesseResults.java:
public Result getBuildResult() {
if (getFailCount() > 0 || getExceptionCount() > 0)
return Result.FAILURE;
else
return null;
}
Simon Westcott
Do you know if this has been committed back to trunk?
Matthew Huang
Hi, Dear Fitnesse plugin team. I really appreciate the cool thing you did.
It's easy to get this plugin work. I found one issue however, it's in the final report. There is link that links back to the Fitnesse test page. I have a Fitnesse page callsed "TestAutobuild" and therefore, I have a page like:
__________________________________________________________________________________________
0 failures
1 tests
Took 0 ms.
add description
Right: 1
Name Right Wrong Ignored Exceptions
TestAutobuilds.TestAutobuild 7 0 0 0
__________________________________________________________________________________________
where if I hove over the link for "TestAutobuilds.TestAutobuild" I see
http//esbgftestrepo:8080/:8081/TestAutobuilds.TestAutobuild
There are two problems in this link.
First, there is no ":" symbol after http;
Second, seems like the fitnesse plugin simply attached the port "8081" (since "8080" has been used by other app in my case) I specified portion after the existing hostname:port string with a forward slash in between.
I am not sure if this is because I didn't configure the plugin correctly or a bug.
Can you help?
Thanks much,
Matthew
Jan B
I made some minor changes to the latest version by Si Westcott as our team wanted to have the ability to pass additional command line arguments (like -o) to any new Fitnesse instance being fire up.
@Si Westcott; this took only some 30 min but if you are interested, send me a message and I will forward source.
Simon Westcott
Hi Jan, send me a patch/pull request and I'll merge it in. Out of interest, do the unit tests on master work for you? HudsonDependentTest.testBuildStartingFitnesseWithAbsoluteAndRelativePaths just hangs on my laptop which made me hesitant to release 1.5.
William B
When is 1.5 due out? I could really use the fix for the exceptions registering as failures.
Jan B
Hi William, Simon Westcott forked this project on GitHub and added the functionality you require (if I am not misunderstanding your question). I recently added the ability to add additional parameters on the cmd line (like -o). Head over to https://github.com/instantkiwi/fitnesse-plugin to access my latest version. HTH
Simon Westcott
Hi William, I've just uploaded a dev build to https://github.com/jenkinsci/fitnesse-plugin/downloads which includes the feature you requested as well as Jan's patches and I've increased the minimum Jenkins version to 1.401 to benefit from core bug fixes in hudson.Proc. Would you be able to give this a test on your Jenkins install before general release?
Bruno CAPPOEN
Hi everybody ! I have some troubles to configure the plugin.I have just the option "Publish Fitnesse results report" in configuration of my job. I don't find the other settings. (Hudson 1.440)
I'm using the "fitnesse.junit.FitNesseSuite" and i don't know if it is compatible because i don't see xml files.
Is it possible to have some explanations ? A mini tutorial ?
Thanks much.
Simon Westcott
Hi Bruno, click "Add build step" button and select "Execute fitnesse tests"
Bruno CAPPOEN
Hi Simon, thanks ! I see the option now. Probably, i was tired yesterday....
I must launch fitnesse with that command :
java -cp "aether-fitnesse-widget.jar:fitnesse.jar" fitnesseMain.FitNesseMain -p 8082
I'm using this widget : https://github.com/pascalleclercq/aether-fitnesse-widget
So it seems that i can't use the command java -jar fitnesse.jar.
Unknown User (carsten.pfeiffer@gebit.de)
Since I would really like to display the results of multiple suite results (see here), I took the time to figure it out myself.
I have a patched version that allows specifying a glob to the XML test result files, just like the JUnit plugin does. Now that there are multiple results, I made the test results nestable so that you can navigate from the toplevel entry down to the concrete results. To aid debugging of test failures, I added the html output that was created during the test run.
The output looks like this:
If you think this is a welcome addition, I'm happy to send you a patch or a git-format-patch or whatever you prefer.
Thanks,
Carsten
Simon Westcott
Hi Carsten,
That does indeed sound like a useful addition! I pull request including unit test updates via Github would be easiest from my point of view.
Thanks,
Si
Erik Swart
I second Simon's comment - looking very forward to this!
Unknown User (carsten.pfeiffer@gebit.de)
Thanks. I've pushed the changes to https://github.com/cpfeiffer/fitnesse-plugin if you want to testdrive them.
Erik Swart
Hi Simon,
Is there any chance you can push an hpi of your plugin to your git branch? Having all sorts of issues with proxying/tunneling through our corporate network, and also trying to install it @ home.
Just the hpi and some SHA/MD5 sums would be great.
-Erik
Gerald Karpinski
Hi Fitnesse plugin team,
The plugin seems not to work in distributed environment, because of 'localhost' in the source code make the requests from the plugin never reach the slaves nodes...
i create a fix (mostly in FitnesseBuilder class, getFitnesseHost method and also FitnesseExecutor), i could send them if you would for testing and next release
Gerald
Simon Westcott
Hi Gerald, send me a pull request please (swestcott on github).
James Dunlop
Hi Simon,
We are also experiencing this same problem when trying to run Jenkins as a slave. Have these changes been pushed up? as we cannot see them there.
Thanks,
James
Simon Westcott
Hi Gerald/James,
I've merged this into master, but some tests are failing now. See pull request for details.
Thanks,
Si
Alex Thomson
Hi Simon,
Is this change going to be made available in a release soon; I'd like to start using the plugin in our jenkins environment?
Thanks,
Alex
James Dunlop
We've had a go at compiling the code that is there currnetly and it has a couple of issues.
1. The 'Fitnesse Host' field is now always displayed as blank even after re-saving the configuration. The functionality still works, it's just the UI display of the field.
2. The option to 'Start new Fitnesse instance as part of build' no longer works at all and it returns a null pointer exception error when running the job. (Both Local and Slave environments)
However the tests now work a Jenkins Slave when Jenkins is running as a service :)
Cyril Lakech
Hi,
Is a release planned with last 2 months work?
Because I think this commit could avoid a NPE we get in most of our fitnesse test job: https://github.com/jenkinsci/fitnesse-plugin/commit/f9552c5dea5ff2a4eb93aaf6b0c1f8e6e39dd6f4
We face a problem with this plugin when our suite are too big maybe because of a timeout problem or because of a result file too big problem or something else. We can't find why our small suite are OK but bigger one faced a NPE all the time.
We use this plugin on a Jenkins hosted @ CloudBees.
Please let us know.
BR,
Cyril
Simon Westcott
Hi Cyril,
1.7 (released today) contains this patch.
Thanks,
Si
bo sun
Hi,
Thanks very much for providing such a nice tool to run fitnesse tests. We used this plug-in on our CI server. It worked well except one thing.
We met a time-out problem when trying to launch fitnesse. The waiting time for launching fitnesse is 10,000ms. However, on our server machine, launching fitnesse sometimes took about 20,000ms.
So can I change the waiting time to a larger number to make sure that my fitnesse can successfully launched?
Thanks!
Subhendu Mohapatra
Hi,
I have just started using the Fitnesse Plugin with Jenkins.
Unfortunately it does not work for me the way I would like to see it.
I would appreciate any advice from users who are well versed with the configuration and how it works.
I am executing Fitnesse Tests by calling Nant Build Target and then publishing the fitnesse results using the Fitnesse Plugin.
The result that I see contains high level overview of the tests and tests that have passes / failed.
I am interested in seeing information on the tests (may be a link to display the test) and reasons why it failed.
I could view the same with Cruise Control and I am pretty sure it must be possible with Jenkins as well. Something similar to this -
can anyone advice as to how do I get this.
Also on a separate note, the reason why I am using Nant instead of calling Fitnesse within the jenkins is because I need to call the TestRunner.exe from Fitnesse. I am not sure as to how I could do that with the Fitnesse Plugin. Any advice on this will also be greatly appreciated.
Thanks
Unknown User (carsten.pfeiffer@gebit.de)
To get the detailed information, you need to make sure that the fitnesse XML output is generated, but also the html output. The fitnesse plugin does this by adding "&format=xml&includehtml" to the URL.
We're also calling FitNesse from ant using the <junit> task instead of letting Jenkins do this. The junit suites are then configured to be run with the FitNesseSuite, like this:
We didn't find a commandline option to get both the XML and HTML output formats, so we had to add this to a fitnesse.responders.run.SuiteResponder (see its superclass TestResponder.createFormatterAndWriteHead()). We have our own subclass of SuiteResponder and have added these methods to get what we want:
Hope this helps,
Carsten
Michael Greco
I'm not sure if I'm doing something wrong ... but I notice when I have Jenkins run my Fitnesse tests (using rubyslim) that stdout isn't logged anywhere. When I run the same tests directly from fitnesse, stdout is written to logs under the ErrorLogs directory. Not sure if I'm doing something wrong or if this is a request ...
Thank You !
James Dunlop
Hi Simon,
Just wondering if any progress was made around the getting the plugin to work with distributed environments? Last I heard the tests were still failing, has this change been included in the latest compiled version of the plugin, or still in need of fixing?
Cheers
Sean Whyte
When will 1.8 be released? I am waiting for Added support for Jenkins slaves.
Bruno CAPPOEN
Hi, is it possible to have the fix to issue JENKINS-17318 in the release ?
I have another problem with jdk path. Seeing this code, my JAVA_HOME is now prefixed with a bin folder like : /bin/home2/jenkins/hudson.model.JDK/jdk1.6.0_32/bin/java
And I get an error : java.io.IOException: error=2, No such file or directory
An idea to avoid that error ? A Value for builder.getFitnesseJdk() is always set in job config.I think, it's the same issue JENKINS-17318.
Thanks.
Mike Guiney
Hi,
Thanks for this plugin! We are using it in our team and its extremely useful.
One feature request for us would be to allow use of system params in job configuration. See screen capture, which probably explains it best :)
We have many instance of jenkins running and monitoring different branches of source control (SCM). Each jenkins instance has an associated fitnesse server. We have a copy of the jenkins job configs stored in SCM and deploy this to each instance and update to point at correct fitnesse instance. We can store jenkins params, but I the plugin doesn't allow us to use them (i think?).
Currently this is manually merged from branch to branch. Any suggestions/workarounds welcome.
Thanks!
Yogesh Khandelwal
curious to know, when is the next version coming up? I'm looking for the below enhancement
Thanks,
Yogesh
Frédéric Ogerau
Hello,
It would be nice to have the possibility to set user and password when accessing a protected Fitnesse server
Thanks
Fred
Andrey Belyaevskiy
Hi!
I faced to issue with Jenkins 1.581 and Hudson FitNesse plugin 1.9.
I setup Jenkins task to start new FitNesse instance as part of build. In task log I see following
I tried to access this page from the machine via curl with exactly same address and I got pages in both ways: start fitnesse with exactly same command as jenkins do and when jenkins task starts fitnesse itself.
Could you please point me where to see further to debug the issue?
Antoine Aumjaud
Hi, your job is running on the master or on a node?
Andrey Belyaevskiy
Hi! My job runs on a slave node.
Antoine Aumjaud
Have you set the HOST_NAME env variable ?
Antoine Aumjaud
Have you set the HOST_NAME env variable on the slave ?
Andrey Belyaevskiy
No, I did not set HOST_NAME manually.
Augustin Chen
Hi,
I Install the fitness plugin 1.16. I configure the fitness builder within a condition step, all my fitness configs get lost when I save the job.
As the JENKINS-21636, the issue is resolved in release 1.13, but seems the 1.16 has the same issue. What's wrong, any walkaround?
Augustin Chen
Hi,
I Install the fitness plugin 1.16. I configure the fitness builder within a condition step, all my fitness configs get lost when I save the job.
As the JENKINS-21636, the issue is resolved in release 1.13, but seems the 1.16 has the same issue. What's wrong, any walkaround?
km v
Can it support environment variable in fitnesse result path?
I'm having console output like this:
Notice the environment variable BUILD_NUMBER didn't turn into the real build number. Same with %BUILD_NUMBER%.
Yogesh Khandelwal
When can we expect a release for
Owen Liu
Hi,
I configure the plugin to use a remote running Fitnesse server and I have a test suite, it contains many tests, thus it will take about 1 hour to finish it, the job fails with HTTP read timeout when I execute the tests with this plugin, is it caused by that Fitnesse server only returns the results when the tests are all finished? can we get the result progressively and avoid the failure in that case?
Thanks.
Sathish Kanigiri
Hello,
Can we run Fitnesse tests through JenkinsFile (pipeline scripting). I've searched in many blogs and nowhere i found appropriate information regarding this. Can you please clarify on this?
Thanks
Sathish Kanigiri
Guy Merrill
Is it possible for a new release of this plug-in to be created? I see there have been check-ins to GitHub in the past year or so that are not reflected in the current 1.16 release. In particular the ability to use SSL connections and to provide user/pass. Thanks!