ekibort / teamcityfitnesseplugin Goto Github PK
View Code? Open in Web Editor NEWTeamCity plugin for runing Fitnesse tests
TeamCity plugin for runing Fitnesse tests
On the client, I can see the jar start up on port 8080, but then that's it. TC times out after 5 minutes.
Fitnesse: c:\Fitnesse\fitnesse-standalone.jar
Port: 8080
Test or suite relative url: FitNesse.SuiteAcceptanceTests.SuiteWidgetTests.TestBackwardsSearchWidget?test
Step 1/1: Fitnesse runer (5m:02s)
[13:14:43][Step 1/1] FitNesse runner executing.
[13:14:43][Step 1/1] Running fitnesse use cmd 'java -DCCFITDIR="c:\Fitnesse" -jar c:\Fitnesse\fitnesse-standalone.jar -p 8080' in 'c:\Fitnesse'
[13:14:43][Step 1/1] Fitnesse runned java.lang.ProcessImpl@13d95a7d
[13:14:45][Step 1/1] [WAIT] Bootstrapping FitNesse, the fully integrated standalone wiki and acceptance testing framework.
[13:19:42][Step 1/1] The build Fitnesse runner #16.07.0.17 {builId=1686574} has been running for more than 5 minutes. Terminating...
[13:19:45][Step 1/1] Dumping threads before termination:
[13:19:45][Step 1/1] PID: 3548, PPID: 2100, Command line: java -DCCFITDIR="c:\Fitnesse" -jar c:\Fitnesse\fitnesse-standalone.jar -p 8080
[13:19:45]
[Step 1/1] 2016-06-17 13:19:02
Full thread dump Java HotSpot(TM) 64-Bit Server VM (24.75-b04 mixed mode):
"Thread-3" prio=6 tid=0x00000000088c3000 nid=0x7bc waiting on condition [0x0000000000000000]
java.lang.Thread.State: RUNNABLE
"DestroyJavaVM" prio=6 tid=0x0000000000c1e800 nid=0xc58 waiting on condition [0x0000000000000000]
java.lang.Thread.State: RUNNABLE
"Thread-1" prio=6 tid=0x00000000089ed800 nid=0x590 runnable [0x00000000092bf000]
java.lang.Thread.State: RUNNABLE
at java.net.DualStackPlainSocketImpl.accept0(Native Method)
at java.net.DualStackPlainSocketImpl.socketAccept(Unknown Source)
at java.net.AbstractPlainSocketImpl.accept(Unknown Source)
at java.net.PlainSocketImpl.accept(Unknown Source)
- locked <0x00000000eb312b38> (a java.net.SocksSocketImpl)
at java.net.ServerSocket.implAccept(Unknown Source)
at java.net.ServerSocket.accept(Unknown Source)
at fitnesse.socketservice.SocketService.serviceThread(SocketService.java:60)
at fitnesse.socketservice.SocketService.access$000(SocketService.java:15)
at fitnesse.socketservice.SocketService$1.run(SocketService.java:32)
at java.lang.Thread.run(Unknown Source)
"Service Thread" daemon prio=6 tid=0x0000000006c4a000 nid=0xe3c runnable [0x0000000000000000]
java.lang.Thread.State: RUNNABLE
"C2 CompilerThread1" daemon prio=10 tid=0x0000000006c37000 nid=0xc44 waiting on condition [0x0000000000000000]
java.lang.Thread.State: RUNNABLE
"C2 CompilerThread0" daemon prio=10 tid=0x0000000006c33800 nid=0x64 waiting on condition [0x0000000000000000]
java.lang.Thread.State: RUNNABLE
"Attach Listener" daemon prio=10 tid=0x0000000006c32800 nid=0xd74 runnable [0x0000000000000000]
java.lang.Thread.State: RUNNABLE
"Signal Dispatcher" daemon prio=10 tid=0x0000000006c2f000 nid=0xc24 runnable [0x0000000000000000]
java.lang.Thread.State: RUNNABLE
"Finalizer" daemon prio=8 tid=0x0000000006bfc800 nid=0x628 in Object.wait() [0x0000000007fbf000]
java.lang.Thread.State: WAITING (on object monitor)
at java.lang.Object.wait(Native Method)
- waiting on <0x00000000ece28b50> (a java.lang.ref.ReferenceQueue$Lock)
at java.lang.ref.ReferenceQueue.remove(Unknown Source)
- locked <0x00000000ece28b50> (a java.lang.ref.ReferenceQueue$Lock)
at java.lang.ref.ReferenceQueue.remove(Unknown Source)
at java.lang.ref.Finalizer$FinalizerThread.run(Unknown Source)
"Reference Handler" daemon prio=10 tid=0x0000000006bf3800 nid=0xabc in Object.wait() [0x0000000007ebf000]
java.lang.Thread.State: WAITING (on object monitor)
at java.lang.Object.wait(Native Method)
- waiting on <0x00000000ece287a8> (a java.lang.ref.Reference$Lock)
at java.lang.Object.wait(Object.java:503)
at java.lang.ref.Reference$ReferenceHandler.run(Unknown Source)
- locked <0x00000000ece287a8> (a java.lang.ref.Reference$Lock)
"VM Thread" prio=10 tid=0x0000000006bef800 nid=0xf78 runnable
"GC task thread#0 (ParallelGC)" prio=6 tid=0x0000000000c66000 nid=0x7a0 runnable
"GC task thread#1 (ParallelGC)" prio=6 tid=0x0000000000c68000 nid=0xae0 runnable
"GC task thread#2 (ParallelGC)" prio=6 tid=0x0000000000c6a000 nid=0xa8c runnable
"GC task thread#3 (ParallelGC)" prio=6 tid=0x0000000000c6b800 nid=0x5d4 runnable
"VM Periodic Task Thread" prio=10 tid=0x0000000006c5c800 nid=0xb24 waiting on condition
[13:19:45][Step 1/1]
[13:19:45][Step 1/1] Step Fitnesse runer interrupted
Right now we can see that SuiteSetUp\SuiteTearDown page treated as a test. I think we need to exclude these special pages from the results.
Log:
Exception encountered:Server returned HTTP response code: 400 for URL: http://buildagent1:8081/CoolProject?suite?test&format=xml
Test URL: http://buildagent1:8081/CoolProject?suite?test
Fitnesse host (ended with slash): http://buildagent1:8081/
Fitnesse test names: CoolProject?suite
How I mend in the title I am missing a path property where I can set the path to the formatting the output xml (e.g. xslt to get a nice html as result).
Alternatively (or in addition) an option to get an 'auto' formatted output would be also great!
Looks like there is a defect in parsing link?test steps in TeamCity 8.1.2.
All the way, when i'm trying to get results from build step which doing ?test page i getting such error:
[Step 6/9] java.lang.IllegalArgumentException: Null blockName
...
This error brings TC to not to show any tests and just saying that build was seccessfull.
When i'm runing same test but thru ?suite i'm getting correct results.
If any additional information needed, just say what you need.
hi we are restricted to add plugin to agent only. I have added agents Fitness.zip from dist in plugins of my agent but I am not able to see Fitnesse runner step in list of build steps. I can see plugin is added as per logs during restart. can you help please ?
My build step hangs in case of this (Fitnesse issue $514)[https://github.com/unclebob/fitnesse/issues/514]
As you can see the tests counters are available. So maybe we can somehow to bypass this issue?
So, we can pass .jar, port and ?suite. But how can we pass username and password. I am using ldap authentication: https://github.com/timander/fitnesse-ldap-authenticator
From Java I can do this:
java -cp "c:\fit\lib*;c:\fit\fitnesse-standalone.jar" fitnesseMain.FitNesseMain -o -c "user:password:tests?suite&format=xml" -d "c:\fit" -b "c:\fit\FitnesseResults.xml"
Thanks,
Ali
I have compiled and copied the plugin in the %USERPROFILE%/.BuildServer/plugins
and restarted the services teamcity server and agent
I still don't see "Fitnesse runer" while adding a build step in Teamcity
using TeamCity Professional 9.1.7 (build 37573)
Can we have a ready built plugin. I haven't been a java developer for a long time and don't need the tools on my machine for anything so would appreciate not having to pollute my computer with JAVA and ANT just to build the zip file
Hello. When I try to launch FitNesse runner under Linux agent, FitNesse could not be started.
Th reason is:
Runtime.getRuntime().exec(cmdFitnesse, null, new File(rootFolder));
where 'cmdFitnesse' contains command to run jar file and this command is surrounded by double-quotes("). When I remove double quotes, it starts working like a charm. Another problem with that: if I remove quotes, path to jar-file must not contain spaces.
Hi there
Is this plugin compatible for version 2017.1.5 of Teamcity Enterprise?
I just tried to build the plugin and then upload it to my running server. For this kind of workflow there shouldn't be a dependency on TeamCity just to build the plugin. Is that possible?
It looks like you made a change which is break backward compatibility.
I have copied the fitnesse.zip to my plugin folder and i get the following error message in my agent log;
WARN - jetbrains.buildServer.AGENT - Failed to parse teamcity-plugin.xml from plugin: C:\BuildAgent5\plugins\Fitnesse.zip. Failed to parse plugin descriptor. Error on line 3: cvc-elt.1: Cannot find the declaration of element 'teamcity-plugin'.
I'm running TeamCity 7.1.3 and I'm having trouble using this plugin.
After installing ANT and the JDK, I was able to build dist\FitNesse.zip. I copied the file to the data directory's plugin folder and restarted the TC server. On the admin tab, I can see the plugin is active (version SNAPSHOT-201302071504, home path .unpacked\Fitnesse). From the logs, it appears to have loaded correctly:
[2013-02-07 15:22:26,105] INFO - e.impl.agent.PluginsLookupTask - Build agent plugins signature is updated: [PluginState{myFile=D:.BuildServer\plugins.unpacked\Fitnesse\agent\Fitnesse.zip, myHash='SHA-1VaqsdGi8zITKB8CRuYR6d2qGKKI='}...
However, when I try to add a new build step, I don't see a FitNesse build runner in the dropdown. The README suggests I should. Is there anything else needed to configure this plugin?
I have installed the plugin on the latest TeamCity using a recent snapshot of fitnesse. The plugin is starting the Fitnesse server but never seems to get any further as evidenced by the lack of any further logging. It runs indefinitely without any output. Any tips for troubleshooting this?
Hi,
If I get an exception trying to run a test suite (i temporarily was getting a 404 when trying to connect to the suite url), it seems to log the exception but not fail the build. Is this the intended behaviour? I need to fail a build if the tests are not run for whatever reason
here's the corresponding logs from the build:
[14:05:03][Step 10/13] Fitnesse ran
[14:05:03][Step 10/13] Fitnesse starting...
[14:05:03][Step 10/13] response:200
[14:05:03][Step 10/13] response:200
[14:05:03][Step 10/13] Connecting to 'http://localhost:8081/.ApiDocumentation?suite&format=xml'
[14:05:03][Step 10/13] Connected: '404/Not Found'
[14:05:03]
[Step 10/13] java.io.FileNotFoundException: http://localhost:8081/.ApiDocumentation?suite&format=xml
at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:57)
at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
at java.lang.reflect.Constructor.newInstance(Constructor.java:526)
at sun.net.www.protocol.http.HttpURLConnection$6.run(HttpURLConnection.java:1675)
at sun.net.www.protocol.http.HttpURLConnection$6.run(HttpURLConnection.java:1673)
at java.security.AccessController.doPrivileged(Native Method)
at sun.net.www.protocol.http.HttpURLConnection.getChainedException(HttpURLConnection.java:1671)
at sun.net.www.protocol.http.HttpURLConnection.getInputStream(HttpURLConnection.java:1244)
at Fitnesse.agent.FitnesseProcess.getSuiteResults(FitnesseProcess.java:109)
at Fitnesse.agent.FitnesseProcess.runSuites(FitnesseProcess.java:183)
at Fitnesse.agent.FitnesseProcess.call(FitnesseProcess.java:209)
at Fitnesse.agent.FitnesseProcess.call(FitnesseProcess.java:21)
at java.util.concurrent.FutureTask.run(FutureTask.java:262)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)
at java.lang.Thread.run(Thread.java:744)
Caused by: java.io.FileNotFoundException: http://localhost:8081/.ApiDocumentation?suite&format=xml
at sun.net.www.protocol.http.HttpURLConnection.getInputStream(HttpURLConnection.java:1624)
at java.net.HttpURLConnection.getResponseCode(HttpURLConnection.java:468)
at Fitnesse.agent.FitnesseProcess.getSuiteResults(FitnesseProcess.java:107)
... 7 more
Thanks Dan
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.