问题
I have a Visual Studio 2010 MVC 3 application with unit tests projects in it. I have a TFS 2008 build definition to build the solution.
On the build agent i have got following installed
- VS2008 team system developer edition
- VS2010 Professional installed
- I have updated the msbuildpath in the tfsservice.exe.config to .NET 4 farmework
- Deleted all the workspaces
- Have followed all the steps at http://blog.aggregatedintelligence.com/2011/03/vs2010-tfs-2008-and-unit-tests.html
But when i run the build I get the following error:-
Using "TestToolsTask" task from assembly "c:\Program Files\Microsoft Visual Studio 10.0\Common7\IDE\PrivateAssemblies\Microsoft.TeamFoundation.Build.ProcessComponents.dll".
Task "TestToolsTask"
C:\Program Files\Microsoft Visual Studio 10.0\Common7\IDE\MSTest.exe /nologo /usestderr /searchpathroot:"c:\TFS\Core\Crime\Binaries\Release" /resultsfileroot:"c:\TFS\Core\Crime\TestResults" /testcontainer:"c:\TFS\Core\Crime\Binaries\Release\\Project1.UnitTests.dll" /testcontainer:"c:\TFS\Core\Crime\Binaries\Release\\Project2.UnitTests.dll" /testcontainer:"c:\TFS\Core\Crime\Binaries\Release\\Project3.UnitTests.dll" /testcontainer:"c:\TFS\Core\Crime\Binaries\Release\\Project4.UnitTests.dll" /publish:"http://server:8080/" /publishbuild:"vstfs:///Build/Build/88124" /teamproject:"Core" /platform:"Any CPU" /flavor:"Release"
Invalid switch "/publish".
Invalid switch "/publishbuild".
Invalid switch "/teamproject".
Invalid switch "/platform".
Invalid switch "/flavor".
For switch syntax, type "MSTest /help"
C:\Program Files\MSBuild\Microsoft\VisualStudio\TeamBuild\Microsoft.TeamFoundation.Build.targets(1406,5,1406,5): warning : TF270015: 'MSTest.exe' returned an unexpected exit code. Expected '0'; actual '1'.
The previous error was converted to a warning because the task was called with ContinueOnError=true.
C:\Program Files\MSBuild\Microsoft\VisualStudio\TeamBuild\Microsoft.TeamFoundation.Build.targets(1406,5): warning MSB4018: The "TestToolsTask" task failed unexpectedly. [c:\TFS\Core\Crime\BuildType\TFSBuild.proj]
C:\Program Files\MSBuild\Microsoft\VisualStudio\TeamBuild\Microsoft.TeamFoundation.Build.targets(1406,5): warning MSB4018: Microsoft.TeamFoundation.Build.Workflow.Activities.UnexpectedExitCodeException: TF270015: 'MSTest.exe' returned an unexpected exit code. Expected '0'; actual '1'.
If I run the mstest command directly on the build server via commandline without the switches it works fine. I don't understand why its trying to add these switches. any idea?
回答1:
You need VS 2010 Premium or Ultimate installed to use those switches in MSTest.exe. You can get around this sort of by just doing an Exec of MSTest with the switches you want, but then you won't see the results as nicely in your build.
回答2:
The switches are added because MSTest is trying to publish the test results to the server so that you can see the information in the build log in team build explorer, as well as in the cube for reporting, etc.
Assuming you installed Team Explorer 2010 when you installed VS2010 Professional you should be able to publish the test results (unless the licensing requires premium or ultimate - I can't remember). It might be worth reinstalling and reapplying the service pack to see if that fixes the problem.
回答3:
I had problem with spaces in my dll-path. The quotation marks didn't work (probably because I missed something obvious?). I did NOT have VS installed on the machine.
来源:https://stackoverflow.com/questions/5624520/running-vs2010-unittests-project-from-tfs2008-team-build