You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

运行NUnit测试时无法找到ITestEventListener的问题求助

NUnit引擎扩展加载失败:无法生成日志文件的解决方案

问题结论

克隆该扩展仓库并执行测试后,不会在./UnitTests/bin/Debug/net9.0/NUnitExtensionFileLogger.txt路径生成文本文件,因为你的NUnit引擎扩展存在几处配置问题,导致引擎无法识别并加载它。

问题根源与修复步骤

1. 测试项目未引用扩展项目

你的NUnitExtension扩展项目未被UnitTests测试项目引用,扩展程序集无法被复制到测试执行目录,NUnit引擎找不到扩展文件。
修复:在UnitTests.csproj中添加项目引用:

<ItemGroup>
  <ProjectReference Include="..\NUnitExtension\NUnitExtension.csproj" />
</ItemGroup>

2. 目标框架版本不兼容

你使用的NUnit.Engine 3.19.2版本最高兼容至.NET 6,但扩展项目目标框架设置为.NET 9,高版本框架编译的程序集无法被低版本引擎加载。
修复:修改NUnitExtension.csproj的目标框架:

<TargetFramework>net6.0</TargetFramework>

3. 日志文件路径不符合预期

当前代码会在执行dotnet test的工作目录生成日志,而非测试项目的输出目录。若要生成到指定路径,需调整路径逻辑:

var assemblyDir = Path.GetDirectoryName(System.Reflection.Assembly.GetExecutingAssembly().Location);
var logPath = Path.Combine(assemblyDir, $"{nameof(NUnitExtension)}.{nameof(FileLogger)}.txt");
File.AppendAllLines(logPath, [report]);

4. 验证扩展加载状态

启用NUnit引擎调试日志,确认扩展是否被识别:

dotnet test --diag:test.log

查看生成的test.log,若未找到FileLogger相关加载记录,说明扩展仍未被引擎识别。

原问题提供的相关代码文件

FileLogger.cs

using NUnit.Engine;
using NUnit.Engine.Extensibility;

namespace NUnitExtension;

[Extension(EngineVersion="3.4")]
public class FileLogger : ITestEventListener
{
    public void OnTestEvent(string report)
    {
        File.AppendAllLines($"{nameof(NUnitExtension)}.{nameof(FileLogger)}.txt", [report]);
    }
}

NUnitExtension.addins

*.dll

NUnitExtension.csproj

<Project Sdk="Microsoft.NET.Sdk">

    <PropertyGroup>
        <TargetFramework>net9.0</TargetFramework>
        <ImplicitUsings>enable</ImplicitUsings>
        <Nullable>enable</Nullable>
    </PropertyGroup>

    <ItemGroup>
      <PackageReference Include="NUnit.Engine" Version="3.19.2" />
    </ItemGroup>

    <ItemGroup>
      <None Update="NUnitExtension.addins">
        <CopyToOutputDirectory>Always</CopyToOutputDirectory>
      </None>
    </ItemGroup>

</Project>

内容的提问来源于stack exchange,提问作者Dave Rant

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.13 16:40:53