Teamcity causing failures in tests

Hi

We are having an interesting problem with Teamcity as one of our projects, which outputs a very large build log (another issue), will fail on the tests that output the most data. These tests are time sensitive as they are sending messages and the messages are re-sent if not received in an appropiate time. We temporarily removed the large output (which I am told is needed) and the tests always pass. Oh and they pass all the time outside of teamcity, no matter what the output.

My question is, how do the logs get written on the wire to the Teamcity server? Is this an asynchronous process or is the speed of the tests dependent on the writing of the logs to the server. And if it it synchronous, can it be changed?

Thanks
Colin

Edited by: Colin Jackman on Oct 7, 2008 9:57 AM

1 comment
Comment actions Permalink

Hello Colin,

TeamCity sends logs messages via XML-RPC to the build agent local server (synchronously), and then,
messages are sent to the TeamCity server (asynchronously). It is reported that tests which produce large output run more slowly
in TeamCity, but this is bound to the fact that TeamCity produces test results feedback while build is running and doesn't wait
until build finishes.

In general, we can provide an option which would skip test output and won't report it to the server - this will speedup things,
but in this case, Web UI won't show test output and won't include it to the build log. I don't think this is the desirable behaviour.

The possible solution for your case may be to write large test output to a file ( not to stdout ) and send this file to TeamCity as
a separate artifact. If you include test name to this report, you'll be able to get the output in Web UI (by downloading or viewing
this file as a separate tab), and this won't slow tests.
Please read about custom UI tabs in TeamCity at:
http://www.jetbrains.net/confluence/display/TCD3/IncludingThird-PartyReportsintheBuildResults

Hope this helps,
KIR

0

Please sign in to leave a comment.