C# 中的 TestMethod 不是 运行
TestMethod Not running in c#
我有以下测试class:
using System;
using DDDSample1.Domain.DriverDuties;
using DDDSample1.Domain.Shared;
using DDDSample1.Controllers;
using System.Collections.Generic;
using Moq;
using Microsoft.VisualStudio.TestTools.UnitTesting;
namespace IntegrationTests
{
public class DriverDutyControllerTest
{
[TestMethod]
public async void GetByIdTest()
{
var repo = new Mock<IDriverDutyRepository>();
var unitOfWork = new Mock<IUnitOfWork>();
var service = new DriverDutyService(unitOfWork.Object, repo.Object);
var controller = new DriverDutiesController(service);
DriverDutyId id = new DriverDutyId("id1");
string key = "keyDD1";
string driver = "DriverDD";
List<String> workblocks = new List<String>();
workblocks.Add("wb1");
workblocks.Add("wb2");
workblocks.Add("wb3");
var ddDto = new CreatingDriverDutyDto(key, driver, workblocks.ToArray());
var dd = new DriverDuty(key, driver, workblocks);
repo.Setup(_ => _.AddAsync(dd)).ReturnsAsync(dd);
var actual = await controller.GetGetById(id.AsGuid());
Console.WriteLine(actual.Value);
Assert.IsTrue(true);
}
}
}
我在 Visual Studio 代码中 运行 宁它,但每当我 运行 测试 GetByIdTest()
我得到以下输出:
----- Running test method "IntegrationTests.DriverDutyControllerTest.GetByIdTest" -----
Microsoft (R) Build Engine version 16.8.0+126527ff1 for .NET
Copyright (C) Microsoft Corporation. All rights reserved.
DDDNetCore -> z:\Git\projeto_integrador_grupo67\mdv\bin\Debug\netcoreapp5.0\DDDNetCore.dll
Build succeeded.
0 Warning(s)
0 Error(s)
Time Elapsed 00:00:02.71
----- Test Execution Summary -----
Total tests: 0. Passed: 0. Failed: 0. Skipped: 0
为什么我的测试被跳过了?关于如何解决它的任何想法?
注意:我正在开发层之间的 IntegrationTesting(在本例中为控制器和服务),因此我需要模拟这些层,因为我不想访问数据库。
尝试将签名从 async void
更改为 async Task
:
[TestMethod]
public async Task GetByIdTest()
...
测试运行程序无法等待返回 void
的方法。
此外,class 应该用 [TestClass]
属性修饰:
[TestClass]
public class DriverDutyControllerTest
...
我有以下测试class:
using System;
using DDDSample1.Domain.DriverDuties;
using DDDSample1.Domain.Shared;
using DDDSample1.Controllers;
using System.Collections.Generic;
using Moq;
using Microsoft.VisualStudio.TestTools.UnitTesting;
namespace IntegrationTests
{
public class DriverDutyControllerTest
{
[TestMethod]
public async void GetByIdTest()
{
var repo = new Mock<IDriverDutyRepository>();
var unitOfWork = new Mock<IUnitOfWork>();
var service = new DriverDutyService(unitOfWork.Object, repo.Object);
var controller = new DriverDutiesController(service);
DriverDutyId id = new DriverDutyId("id1");
string key = "keyDD1";
string driver = "DriverDD";
List<String> workblocks = new List<String>();
workblocks.Add("wb1");
workblocks.Add("wb2");
workblocks.Add("wb3");
var ddDto = new CreatingDriverDutyDto(key, driver, workblocks.ToArray());
var dd = new DriverDuty(key, driver, workblocks);
repo.Setup(_ => _.AddAsync(dd)).ReturnsAsync(dd);
var actual = await controller.GetGetById(id.AsGuid());
Console.WriteLine(actual.Value);
Assert.IsTrue(true);
}
}
}
我在 Visual Studio 代码中 运行 宁它,但每当我 运行 测试 GetByIdTest()
我得到以下输出:
----- Running test method "IntegrationTests.DriverDutyControllerTest.GetByIdTest" -----
Microsoft (R) Build Engine version 16.8.0+126527ff1 for .NET
Copyright (C) Microsoft Corporation. All rights reserved.
DDDNetCore -> z:\Git\projeto_integrador_grupo67\mdv\bin\Debug\netcoreapp5.0\DDDNetCore.dll
Build succeeded.
0 Warning(s)
0 Error(s)
Time Elapsed 00:00:02.71
----- Test Execution Summary -----
Total tests: 0. Passed: 0. Failed: 0. Skipped: 0
为什么我的测试被跳过了?关于如何解决它的任何想法?
注意:我正在开发层之间的 IntegrationTesting(在本例中为控制器和服务),因此我需要模拟这些层,因为我不想访问数据库。
尝试将签名从 async void
更改为 async Task
:
[TestMethod]
public async Task GetByIdTest()
...
测试运行程序无法等待返回 void
的方法。
此外,class 应该用 [TestClass]
属性修饰:
[TestClass]
public class DriverDutyControllerTest
...