3

In my current project we are using a TFS Build server for continuous integration (build + run unit tests). We also have a set of automated acceptance tests written as SpecFlow features.

However, these are not integrated into the continuous integration workflow. Today, the application is deployed manually and the acceptance tests are invoked manually.

We would like to automate this in the form of a script/console application or some kind of existing CI tool.

This is what we would like to do periodically, e.g. once every hour:

  1. Ask TFS if there are any new builds
  2. If yes: get the latest successful build from TFS
  3. Deploy the application to our test machine
  4. Execute the SpecFlow tests against the deployed build
  5. Collect the result and present it on some form of web page

Are there any existing tools or frameworks for this? I have read about existing CI servers but they doesn't seem to fit my description. If not, any advice on how to achieve step 1, 2 and 5 programatically or by using command line tools?

Chris
  • 885
  • 8
  • 19

1 Answers1

2

In my humble opinion TFS is capable of doing everything that you listed without involving any additional tools. What you might need to do is to setup a Lab Environment and use specific Workflow build definition to achieve it. You need also Test controller and test agents. The easiest way might be to setup Standard Lab environment which might act in this way - Build - Deploy - Test workflow

Build got triggered, then got deployed into the lab environment (might be a bunch of either physical or VM machines with installed test agents on them and connected to the Test controller), after that all test are executed and the result is consolidated as a part of the build results.

Hope this helps a bit!

-Rado

  • Totally agree! We do the same thing with TFS when we are using it on a project. Build definitions that compile, run unit tests, do code analysis, and deploy. No need for another tool if already investing into TFS! – Jay S Dec 11 '12 at 15:29