建立项目
在现有的解决方案中,添加一个.Net Core类库项目
修改project.json
增加xunit相关包的引用
例如:
"testRunner": "xunit", "dependencies": { "Microsoft.NETCore.App": { "version": "1.0.0-rc2-3002702", "type": "platform" }, "xunit": "2.1.0", "xunit.runner.visualstudio": "2.1.0", "dotnet-test-xunit": "1.0.0-rc2-build10025" },
如果你不需要与VS IDE的单元测试集成,则可以删掉 xunit.runner.visualstudio 一行
错误提示xunit不支持netstandard1.5
这时需要把 frameworks 修改为
"frameworks": { "netcoreapp1.0": { "imports": [ "dotnet5.6", "dnxcore50", "portable-net45+win8" ] } },
书写单元测试方法
[Fact] public void PassingTestDotnet() { Assert.Equal(1, 1); }
使用cli进行单元测试
dotnet test
其他补充
如果你要测试的项目有使用到 appsettings.json 等配置文件,则需要把该文件复制一份到 UnitTest 项目中,然后修改单元测试类的构造函数
public UnitTest() { var builder = new ConfigurationBuilder() .AddJsonFile("appsettings.json", optional: true, reloadOnChange: true) .AddEnvironmentVariables(); Startup.Configuration = builder.Build(); }
修改后可能还会报找不到 appsettings.json 文件的IO异常,此时则需要修改 project.json 文件,让构建发布时把该文件一起发布
"publishOptions": { "include": [ "appsettings.json" ] }, "buildOptions": { "copyToOutput": [ "appsettings.json" ] }
TFS测试集成
新建一个文件 RunDotnetTest.ps1
Set-ExecutionPolicy unrestricted -Scope CurrentUser -Force dotnet test $PSScriptRoot\微信企业号\src\UnitTest -xml $PSScriptRoot\微信企业号\src\UnitTest\testresults.xml
注意修改为自己项目的路径
参照 升级.Net Core RC2的那些事(四)——TFS2015的CI集成 一文中的方法,把此PowerShell文件添加为生成步骤
然后再添加一个 发布测试结果 的生成步骤
相关设置如下:
保存生成定义后,单击 为生成排队 ,可以看看效果