【问题标题】:Async unit tests are not visible in Visual Studio异步单元测试在 Visual Studio 中不可见
【发布时间】:2015-11-30 15:25:47
【问题描述】:

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

public async Task MyTest()

代替标准的单元测试签名

public void MyTest()

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

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

【问题讨论】:

  • 这个测试是否在运行in ASP.NET by any chance
  • 我认为 xUnit 测试根本无法访问 CodeLens,因此在 CodeLens 中没有提及它们......还是我弄错了?

标签: c# .net visual-studio unit-testing xunit


【解决方案1】:

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

   [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);
    }

【讨论】:

  • OP 使用的是 xUnit,你使用的是内置的单元测试系统。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2010-09-18
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-10-30
相关资源
最近更新 更多