Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/299.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 异步单元测试在Visual Studio中不可见_C#_.net_Visual Studio_Unit Testing_Xunit - Fatal编程技术网

C# 异步单元测试在Visual Studio中不可见

C# 异步单元测试在Visual Studio中不可见,c#,.net,visual-studio,unit-testing,xunit,C#,.net,Visual Studio,Unit Testing,Xunit,我使用Visual Studio 2015 Ultimate,编写了一些单元测试(我使用xUnit 2.1.0.3179,它允许此签名): 而不是标准的单元测试签名 public void MyTest() 但这些单元测试在VisualStudio(代码镜头)和测试资源管理器中不可见。当然,我重建解决方案时没有任何错误:) 是否有可能拥有与标准签名测试相同的功能?可能有VS扩展?我很确定您可能已经找到了解决方案,但我在尝试修复异步单元测试时发现了您的问题。(注意:我使用的是最新的Visual

我使用Visual Studio 2015 Ultimate,编写了一些单元测试(我使用xUnit 2.1.0.3179,它允许此签名):

而不是标准的单元测试签名

public void MyTest()
但这些单元测试在VisualStudio(代码镜头)和测试资源管理器中不可见。当然,我重建解决方案时没有任何错误:)


是否有可能拥有与标准签名测试相同的功能?可能有VS扩展?

我很确定您可能已经找到了解决方案,但我在尝试修复异步单元测试时发现了您的问题。(注意:我使用的是最新的Visual Studio 2015更新3)

[TestMethod]
公共异步任务GetVendors\u ByRegionId\u ReturnFilteredVendors()
{
//安排
var optionsBuilder=new DbContextOptionsBuilder();
optionsBuilder.UseSqlServer(“服务器=server12345;数据库=DB789;可信连接=True;MultipleActiveResultSets=True”);
var ctx=新的ApplicationDbContext(optionBuilder.Options);
ILoggerFactory logFac=新LoggerFactory();
ILogger loggerRepository=新记录器(logFac);
IVendorRepository vendRepo=新的供应商或存储库(ctx、loggerRepository);
//表演
任务结果任务=vendRepo.GetVendors(1);
IList vendorList=等待结果任务;
//断言
Assert.IsNotNull(供应商列表);
Assert.IsTrue(vendorList.Count>10);
}

我很确定您可能已经找到了解决方案,但我在尝试修复异步单元测试时发现了您的问题。(注意:我使用的是最新的Visual Studio 2015更新3)

[TestMethod]
公共异步任务GetVendors\u ByRegionId\u ReturnFilteredVendors()
{
//安排
var optionsBuilder=new DbContextOptionsBuilder();
optionsBuilder.UseSqlServer(“服务器=server12345;数据库=DB789;可信连接=True;MultipleActiveResultSets=True”);
var ctx=新的ApplicationDbContext(optionBuilder.Options);
ILoggerFactory logFac=新LoggerFactory();
ILogger loggerRepository=新记录器(logFac);
IVendorRepository vendRepo=新的供应商或存储库(ctx、loggerRepository);
//表演
任务结果任务=vendRepo.GetVendors(1);
IList vendorList=等待结果任务;
//断言
Assert.IsNotNull(供应商列表);
Assert.IsTrue(vendorList.Count>10);
}

OP使用的是xUnit,您使用的是内置单元测试系统。OP使用的是xUnit,您使用的是内置单元测试系统。该测试正在运行吗?我认为xUnit测试根本无法访问CodeLens,因此在CodeLens中没有提及它们。。。还是我弄错了?这个测试正在运行吗?我认为xUnit测试根本无法访问CodeLens,因此在CodeLens中没有提到它们。。。还是我错了?
public void MyTest()
   [TestMethod]
    public async Task GetVendors_ByRegionId_ReturnFilteredVendors()
    {
        // Arrange
        var optionsBuilder = new DbContextOptionsBuilder();
        optionsBuilder.UseSqlServer("Server=server12345;Database=DB789;Trusted_Connection=True;MultipleActiveResultSets=true");
        var ctx = new ApplicationDbContext(optionsBuilder.Options);
        ILoggerFactory logFac = new LoggerFactory();
        ILogger<VendorRepository> loggerRepository = new Logger<VendorRepository>(logFac);
        IVendorRepository vendRepo = new VendorRepository(ctx, loggerRepository);

        // Act
        Task<List<Vendor>> resultTask = vendRepo.GetVendors(1);
        IList<Vendor> vendorList = await resultTask;

        // Assert
        Assert.IsNotNull(vendorList);
        Assert.IsTrue(vendorList.Count > 10);
    }