On the subject of building things, MSDN has
an article on adding continous integration to Visual Studio Team
Server
VSTS doesn't ship with such a thing built in; remember it still
lives in a world where testers and architects have separate
versions of Visual Studio. This paper shows how to easily fit the
stuff in.
I gave the page 4/10 for trying. It isnt the software, its the
process. Like this bit
BuildType:The build type to
be used while doing continuous integration builds. Typically this
is configured to just do builds. Optionally, you can also add some
basic level of testing and static analysis.
That is: they think that running basic tests on a CI server is
an optional extra. If you aren't going to delegate running your
full test suite to a machine with time on its hands, that leaves
(a) people or (b) nothing. People have better things to do, even
testers, like writing better tests.
But what really hurt was this "disadvantage"
Some teams find the level of
discipline required for continuous integration a bottleneck and
would require a shift in the mindset.
Now remember, the paper has just encouraged your server to just
build, not test. and now they say the level of discipline required
for continuous integration is a bottleneck and would require a
shift in the mindset.". Let's rephrase that. Some teams are
happy checking in broken code, and are not prepared to fix this
behaviour. That's why I gave it 4/10. Tech good; process bad.
If the team is checking in broken code it means that you can never
check out good code. Which means that you can never be sure in the
morning whether or not the stuff in the SCM repo is any good or
not, So you branch for weeks at a time, have integration hell at
the end, no stable images in SCM, etc. etc. And you probably don't
have test cases that are any good either.
So yes, CI does imply a change in mindset for those projects.
But its either that or ship broken code, late.
I wonder if this MSDN article is going to crash and burn as
badly as the one on test-driven development?
All that this point mentions is that while configuring a build type - you can 'choose' not to run tests - there can be some scenarios where a customer would want this flexibility.