In my last post I introduced my favorite way to put a “TODO” in code. Several commenter’s mentioned checking in unfinished integration tests as kind of a marker to measure the progress of outstanding work. My team does something like this with our StoryTeller infrastructure. In StoryTeller, each test has a “lifecycle” attribute of either “Acceptance” or “Regression.”
<?xml version=“1.0“?>
<Test name=“Add an Installable Part to the Case“ lifecycle=“Acceptance“>
</Test>
In the big regression build, all StoryTeller tests are executed and the results are written off and tabulated for all tests, but only tests marked as “Regression” can cause a true build failure by the command line StoryTellerRunner tool. This way you can have the acceptance tests specified early or even (in a perfect world) before any development happens for a feature, then change the lifecycle to “Regression” later to turn the test into a mandatory regression test.
It’s working pretty well for us so far. I got this from a parallel ThoughtWorks team about 5 years ago that was using this technique with Fit tests.