如标题说:怎样在没有安装VS2010的环境里用mstest.exe跑test case?(注:以下实验在64位Windows 7上通过)。
以前主要是做c++开发的,很多工具用起来非常方便,如gtest等;而c#的vs却没有类似集成工具,依赖比较多,从网上找到一篇文章如下,时间关系暂时还没有来得及试验是否真的有效。
如朋友们有时间可以试验之后回复,谢谢。
原文如下(https://www.cnblogs.com/jenneyblog/archive/2012/09/14/mstestcommandline.html):
1. 首先在装有VS2010的环境里,新建一个文件夹,如C:\Users\username\Desktop\mstestCommandLine(注意文件夹名不能有空格,否则运行下面的脚本会有问题),然后把下面的脚本getmstest.bat复制到此目录下,运行getmstest.bat,这个bat会把mstest.exe需要的类库及注册表都导入到当前目录下一个叫mstest的文件夹里(这一步每一个人的os环境有一些区别,看起来操作会遇到一些麻烦,比如中文之类的,非常有可能需要修改脚本)
getmstest.bat
@echo off
setlocal
set here=%~dp0
mkdir mstest
set targetfolder=%here%mstest
set programs=%programfiles%
if exist "%programfiles(x86)%" set programs=%programfiles(x86)%
set vs2010="%programs%\Microsoft Visual Studio 10.0"
set gac1="%windir%"\assembly
set gac2="%windir%"\Microsoft.NET\assembly
echo === Copying from Visual Studio 2010 install folder...
copy %vs2010%\Common7\IDE\mstest* "%targetfolder%"
copy %vs2010%\Common7\IDE\PrivateAssemblies\Microsoft.VisualStudio.Quality* "%targetfolder%"
copy %vs2010%\Common7\IDE\PublicAssemblies\Microsoft.VisualStudio.QualityTools.CodedUITestFramework* "%targetfolder%"
echo === Copying from %gac1%...
pushd "%gac1%"
dir /s /b *.dll | findstr QualityTools | findstr 10.0.0.0 > %here%tmp.filelist
popd
for /F "tokens=*" %%f in (tmp.filelist) DO copy "%%f" "%targetfolder%"
echo === Copying from %gac2%...
pushd "%gac2%"
dir /s /b *.dll | findstr QualityTools | findstr 10.0.0.0 > %here%tmp.filelist
popd
for /F "tokens=*" %%f in (tmp.filelist) DO copy "%%f" "%targetfolder%"
del tmp.filelist
echo === Exporting registry keys...
regedit.exe /e %targetfolder%\mstest.reg HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Microsoft\VisualStudio\10.0\EnterpriseTools\QualityTools\TestTypes
echo === Done. Check output for errors!
exit /b 0
2. 准备跑test case需要的文件:我把它们放在了C:\Users\username\Desktop\mstestCommandLine\test文件夹里,如下图所示。注意下图里的TestResults为自己新建的文件夹,run case时会用到,用于存储test result。现在,要准备的文件都放在了C:\Users\username\Desktop\mstestCommandLine里 (这一步没有什么特殊要求,值需要准备一个ut功能的dll即可)
3. 在目标机器上安装.NET Framework 4.0 (这个还需要安装,有点无奈。。。没办法谁叫大家吃软饭的呢。。)
4. 把C:\Users\username\Desktop\mstestCommandLine文件夹复制到目标机器上,假设复制到目标机器的桌面上 (一定要桌面吗??)
5. 在目标机器上,运行C:\Users\username\Desktop\mstestCommandLine\mstest这个文件夹里的mstest.reg(双击即可) (这一步可以有。。。)
6.在目标机器上,Run->cmd, 回车,进入mstest.exe所在的文件夹,然后运行下面的命令:(具体的命令格式,应该还有很多参数可以使用,需要慢慢查一查)
mstest /noisolation /testcontainer:C:\Users\<username>\Desktop\mstest\test\TestProject1.dll /resultsfile:C:\Users\<username>\Desktop\mstest\test\TestResults\result.trx
7. 运行结果如下图所示:(有图有真相)
参考:
http://mindinthewater.blogspot.com/2008/11/executing-visual-studio-unit-tests.html
http://mindinthewater.blogspot.com/2011/02/executing-visual-studio-2010-unit-tests.html