My teammate and I are working on better TeamCity intergration. Right now what we have built is a custom API and a Python script its a bit run around, and is still loaded with bugs. Once we have it more refined we will be releasing it to the community, I have no ETA on our plans to release it.
Our product is a web application, we use a git flow methodolgy and TeamCity builds and deploys to a test enviornment for the branch.
- TeamCity's python script tells our custom-API to start tests and the environment. (http://tcapidev/start?=http://webdev521:52319/ )
- Our custom API triggers a bat file with "psexec" to launch TestExecute (I would like to switch over to using TE's built in TestRunner API instead of this psexec bat so we have better control to remotely stop the tests).
- Our TestExecute/TeamCity project has an OnStartTest event, determins if it's the first test gets the targetURL, then OnLogEvent's to store errors etc, and then OnStopTest to post the final state and isPassing of recorded logEvents to our custom API.
(http://tcapidev/post?sessionID=123&testresult=
{'testname':'welcome page',
'isPassing': 'true',
'log':'{'type':'checkpoint',
'message':'loaded welcomepage'}
'} )
- TeamCity's python script peridocialy checks our in house API for these status messages that TestExecute has posted and gives that to the TamCity build log.
I wish TestComplete's built in API gave this information, and our Python script could just poll for that instead of having to post it to our own custom API.