我无法找到有关如何对.NET Standard 1.6类库(可以从.NET Core项目中引用)进行单元测试的最新文档.
这是project.json我的图书馆的样子:
{
"supports": {},
"dependencies": {
"Microsoft.NETCore.Portable.Compatibility": "1.0.1",
"NETStandard.Library": "1.6.0",
"Portable.BouncyCastle": "1.8.1.2"
},
"frameworks": {
"netstandard1.6": {}
}
}
Run Code Online (Sandbox Code Playgroud)
现在剩下的任务是能够创建某种可以进行单元测试的项目.目标是使用xUnit,因为这似乎是.NET Core团队正在推动的.
我继续创建了另一个.NET可移植的库项目,它有一个如下所示的project.json:
{
"supports": {},
"dependencies": {
"Microsoft.NETCore.Portable.Compatibility": "1.0.1",
"NETStandard.Library": "1.6.0",
"xunit": "2.2.0-beta4-build3444",
"xunit.runner.visualstudio": "2.1.0"
},
"frameworks": {
"netstandard1.6": {
}
}
}
Run Code Online (Sandbox Code Playgroud)
我在该项目中的测试类如下所示:
using USB.EnterpriseAutomation.Security.DotNetCore;
using Xunit;
namespace Security.DotNetCore.Test
{
public class AesEncryptionHelperTests
{
[Fact]
public void AesEncryptDecrypt()
{
var input = "Hello world!";
var encrypted = AesEncryptionHelper.AesEncrypt(input);
var decrypted = AesEncryptionHelper.AesDecrypt(encrypted);
Assert.Equal(input, …Run Code Online (Sandbox Code Playgroud) 我做了这样的nuget安装:
Install-Package xunit.runner.visualstudio -Version 2.2.0
Run Code Online (Sandbox Code Playgroud)
在我的测试项目上.
我有一个类似的测试:
public class When_Doing_Stuff_I_Want_To_Test
{
[Fact]
public void Can_Do_Stuff()
{
var result = DoStuff();
result.ShouldNotBeNull();
result.Success.ShouldBeTrue();
}
}
Run Code Online (Sandbox Code Playgroud)
虽然我已经做了很多VS重启,笔记本电脑重新启动,中间休息一天,VS 2017仍然无法发现我的测试:
我该怎么做才能解决这个问题并看看我的测试?
附录
我在4.6.1下工作,所以还没有Core.
关于相同主题的问题没有帮助:
所以有很多回合,没有一个帮助......
更新
我也无法使NUnit工作,也不会出现在测试资源管理器中.
更新2
我擦了我的项目并重新创建了这样的项目:
然后我复制了我的原始代码并添加了所有必要的参考,没有区别.