I want to use mstest.exe to run my unit test on build server, but I don't want to install Visual Studio on the build server. Can I just install MSTest without Visual Studio?
相关问题
- How to know full paths to DLL's from .csproj f
- Importing NuGet references through a local project
- Visual Studio 2019 - error MSB8020: The build tool
- 'System.Threading.ThreadAbortException' in
- VS2017 RC - The following error occurred when tryi
相关文章
- How to show location of errors, references to memb
- Log4Net Multiple Projects
- How to track MongoDB requests from a console appli
- Visual Studio Hangs on Loading UI Library
- How to use Mercurial from Visual Studio 2010?
- Attribute filter syntax for code coverage in TeamC
- Copy different file to output directory for releas
- How to replace Middleware in integration tests pro
It is possible to run mstest.exe without visual studio.
Download one of the Agents for Visual Studio ISO's below and install the Test Agent on the server:
Visual Studio 2017 (127MB disk space, less than that for download)
Visual Studio 2015 (128MB setup, 2GB disk space required)
Visual Studio 2012 (224MB)
Visual Studio 2013 (287MB)
Visual Studio 2010 (515MB)
This installs everything needed for running mstest.exe from the command line and is much lighter weight than visual studio. ~500mb download and around ~300mb to install just the test agent if I remember correctly.
UPDATE
For versions older than VS 2017, look here:
https://www.visualstudio.com/vs/older-downloads/
I think you probably can, but its definitely not supported.
I've found this blog article written by someone who claims to have MSTest working without Visual Studio installed.
@crocpulsar, you need to install Visual Studio on your build server, but you do NOT need to buy an additional licence.
There are just way too many dependancies to getting build & MSTest to work without VS installed, and it is most definately not supported.
As long as the person who starts the build has a licence, you do not need one for the build server. This has been the case since the dark days of 2005, and as long as there is edition parity then you are OK.
If everyone in your team has Ultimate, then you are free to install it on the build server; but if one of your team member's has Premium, then you should ideally install Premium on the build server. This also enables lots of other bits like Code Coverage, Test Impact Analysis, and Architecture Validation among others.
If you need to run mstest.exe webtest tool then you can install Visual Studio Enterprise trial and make sure to run it at least once (just start it) under account under which test will be running with nothing additional needs to be done. So if your test run under System account then you need to use something like below
This answer pertains specifically to Visual Studio 2017, and the answer is yes. Please be aware, however, that Microsoft (still) doesn't provide any sort of official API for locating the relevant executables (
MSBuild.exe
andMSTest.exe
), so you are stuck reading registry keys and/or probing various directories to locate these files. You've been warned.MSTest.TestFramework
into those project(s) and remove the reference toMicrosoft.VisualStudio.QualityTools.UnitTestFramework
from them. Now all you need is to install the Visual Studio 2017 Build Tools and invokemsbuild.exe
to perform the build.MSTest.exe
andvstest.console.exe
which you can then call out to. Do note that actually figuring out where these executables reside is a pain, because they won't exist in the same directory structure asMSBuild.exe
in Build Tools.Finally, and very importantly: if you do use
MSTest.TestFramework
and still need to be able to discover and run tests from within the Visual Studio IDE, you'll also needMSTest.TestAdapter
installed in your unit test project(s).1: While VS2017 supports side-by-side installs, it uses a single registry key that only records the most recent install. Hence, if you install Test Agent last, the key will point to its install directory... but Test Agent doesn't include
MSBuild.exe
, so any code that relies on this registry key to figure out that executable's path, will fail. Why Microsoft couldn't have made the Test Agent an optional part of Build Tools (so that all the EXEs live in the same directory hierarchy) is anyone's guess.Here are the steps I took to get my build server to run MsTest without installing VS 2012:
Register 'msdia110.dll' with c:/windows/syswow64/regsvr32.exe /i '../mstest/assemblies/msdia110.dll'(This threw an error, but for some reason it still worked. I ran it a couple times and tried different regsvr32.exe versions before I checked, but it's there in the registry)
Add environment variable 'MSTEST_HOME' and set it to 'c:\dev\mstest\' or to your path. I used the environment variable in my build script.
Debugging MsTest execution error:
Add to 'MsTest.exe.config'