建立项目
在现有的解决方案中,添加一个.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文件添加为生成步骤
然后再添加一个 发布测试结果 的生成步骤
相关设置如下:
保存生成定义后,单击 为生成排队 ,可以看看效果