Infrastructure required for TDD?

I am "relatively new" for unit testing and TDD. Most recently, I completed my first production application, which (at least theoretically) covered 100% of the code. I already tested block testing in previous projects, but not in true TDD style and with good code coverage. It has always been thoughtful. I feel that I now have a pretty good idea of ​​this.

I am also trying to train the rest of the TDD team and unit testing so that we can grow togeather and start moving forward with unit testing in all of our applications and, ultimately, move to full TDD with automatic builds and continuous integration. I posted a thread here regarding my attack / training plan for comment and criticism.

One of the answers (actually the highest voice) suggested that I first set up the infrastructure before I continue training. Unfortunately, I am not exposed to this, and topic search is difficult because the pages for CruiseControl.NET/nAnt/etc do not really explain why we should install this, and how everything connects to toather.

We are a small store (about 10 developers) and use almost exclusively Microsoft technologies and do our development on VB.NET. We are looking to use C # in the end, but this is at a different time. I am using the MSTest project that comes with VS2008 for my unit tests, and I am developing my applications using Visual Studio and deploying using MSI setup projects ... We also (unfortunately) use VSS for our control over the trial - but this also on the interrupt block, and I really would like to get rid of it and use subversion.

I know that I need to use CruiseControl.NET for CI and either nAnt or MSBuild to build applications. And I probably need a build server to run all of these builds. But I just can’t find anything that “connects” the points and explains how they interact with each other, what should be on your assembly server when you need to build assemblies with your server (is it easy to deploy assemblies or even when you just Do you want to compile the application that you develop after making minor changes in your local environment?). I also plan to use MSTest since I found that it is faulty and will use nUnit instead.

Can someone possibly highlight this gap that I have, “knowing how to make TDD”, to “create the proper infrastructure so that the whole team can do this and work togeather”? I understand what continuous integration is, but again, I'm not sure how the build server should be configured and how it connects to everything, and why we need it (for example, the management step).

Thanks so much for your time.

What part of the final collector do I need? Some seem to overlap with the final builder and team. The Finalbuilder server seems like a CI server, so I assume I don't need this. FinalBuilder seems to be a build server, but I thought TeamCity is also a build server ... And Automise seems to be a window management tool, like some kind of development platform for winforms applications ...

I also do not see support for the final builder in the Application Diagram supported by Team City : _

+7
tdd build-process continuous-integration
source share
1 answer

Take a look at the webinar I did a few weeks ago - How to successfully start testing a device . At this webinar, I talked about the best tools and unit tests, and it aimed at developers just like you who want to introduce unit testing in their organization.

The first business order that you want to place on CI (continuous integration), and for this you will need three tools:

  • Source control
  • Build server
  • Create client / script

I hope you already have some form of source control, so let's talk about the other two.

Assembly server - checks the original control, and when it changes (or some other condition), the script is being built on some client (or on the same computer) there are several build servers. I recommend JetBrain TeamCity is easy to install and use (excellent web interface) and free for up to 20 developers (what you).

Build Script - on your build client, you want to run a build script that will build your solution and run unit tests. TeamCity has some basic assembly and testing capabilities, but for more complex options (builder, documentation, etc.) you will need a script runner at the work we use FinalBuilder - it is not free, but it has a very good editor. If you're looking for a free alternative, check out ANT or NANT - but be prepared to edit a lot of XML.

Other tools . Since an important part of successful unit testing is how easy it is to write and run tests on the developer's machines, I suggest you check to see if there are more effective IDEs or external tools to help developers write and run their unit tests.

+5
source share

All Articles