Rod*_*Rod 5 c# xunit azure-pipelines-build-task azure-pipelines
这个问题就像一年前发布的一个标题为“xUnit 测试在本地运行但不在 Azure DevOps 上运行”的问题。然而,它的不同足以保证一个单独的问题。我正在使用 .NET 6 开发一个 ASP.NET MVC 项目。我有一个 Azure CI 管道,它使用 DotNetCoreCLI@2,而不是管道中的 VSTest@2 任务,就像使用 Azure 管道时通常包含的那样ASP.NET 模板。运行管道时,我在日志中收到以下警告消息:
D:\a\1\s\PharmacyWarehouseV2\PharmacyWarehouseV2.Test\HomeControllerTest.cs(18,49):警告 CS8625:无法将 null 文字转换为不可为 null 的引用类型。
查看 xUnit 测试(只有一个),很容易明白为什么要这样做:
var controller = new HomeController(null);
当时我主要对让单元测试工作感兴趣。现在我认为它不起作用的原因是因为 C# 编译器发现 NULL 被传递到 HomeController 中,在 HomeController 中它将被分配给 ILogger。因此,我开始寻找更好的日志记录方式。我遇到了另一个参考资料,但我无法再次找到(不幸的是)它说 .NET 6 不再与 ILogger 一起使用。那么,现在使用 .NET 6 在 MVC 控制器和 xUnit 单元测试中处理日志记录的首选方法是什么?
这是我的 YAML 文件中的 DotNetCoreCLI@2 任务:
- task: DotNetCoreCLI@2
displayName: 'Dot Net Core Test'
inputs:
command: 'test'
projects: '**/*[Tt]est*/*.csproj'
arguments: '--configuration $(BuildConfiguration)'
enabled: false
Run Code Online (Sandbox Code Playgroud)