I've been charged with coming up with a workflow in a non-TFS build tool that will build a solution, run unit test projects in the solution, then package the final output of the build for deployment. I originally had constructed a workflow that used MSBuild with the Outdir parameter to get the publishable application for later storage. When I added unit test projects to the solution they work fine in Visual Studio (2010) but when I run my solution through MSBuild the MSTest step can't find the tests because the VSMDI file points to the BIN folders in the test projects, but the Outdir parameter is applied a the Solution level so the test DLLs are constructed in the Outdir directory instead of the BIN folder. If I remove Outdir from MSBuild the tests run, but I don't get a publishable application. This is a problem for web applications where we don't want to publish the code files and other artifacts that Visual Studio Publish would exclude.
Any ideas how to get MSTest to run the tests correctly based on the VSMDI file when MSBuild is run with Outdir? I thought about scripting an XML transform to change the paths in VSMDI to the Publish folder, but that seems like a hack.
Any suggestions are greatly appreciated.