NetArchTest.Rules断言测试失效:所有测试误报成功求助
解决NetArchTest.Rules测试始终返回成功的问题
可能的原因及修复方案
1. 确认程序集引用是否正确
检查DomainAssembly是否指向了正确的Domain层程序集:
- 确保
IEntity<>确实定义在Domain项目中,而非其他项目。 - 可通过输出程序集名称验证:
对比输出结果与实际Domain项目的程序集名称是否一致。Console.WriteLine(DomainAssembly.FullName);
2. 修正依赖名称的匹配值
HaveDependencyOnAny方法接收的是程序集名称(不是命名空间或项目名称),需确保参数是目标依赖程序集的准确名称:
- 右键目标项目(如Application层)→属性→应用程序→查看「程序集名称」。
- 将测试代码中的参数替换为正确的程序集名称,示例:
.HaveDependencyOnAny("CleanArchitecture.Application")
3. 验证测试逻辑的正确性
若上述两步确认无误,可故意在Domain层添加一个对Application层的引用,运行测试看是否会失败。若仍成功,尝试更新NetArchTest.Rules到最新版本:
Install-Package NetArchTest.Rules -Version <最新版本号>
4. 检查测试断言的逻辑
确保测试意图与断言一致:如果是验证Domain层没有指定依赖,Assert.True(result.IsSuccessful)是正确的;如果是验证存在依赖,则需改为Assert.False(result.IsSuccessful)。
内容的提问来源于stack exchange,提问作者hackp0int
相关产品推荐
相关产品推荐

