微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

如何从单元测试中排除名称中带有“Test”的辅助项目?

如何解决如何从单元测试中排除名称中带有“Test”的辅助项目?

我们有一个名为 Foo.Testing.Common 的实用程序项目,其中包含我们真实测试项目的帮助程序类,命名为 Foo.Tests.UnitFoo.Tests.Integration 之类的东西。 Common 项目没有测试,只有基类、实用方法等。它引用了 XUnit,所以我可以使用 Xunit.Abstractions

当我们通过 .net 命令行或 VS 测试资源管理器运行所有测试时,如何避免看到如下错误?例如,在测试发现期间,VS 测试输出中会出现以下错误

No test is available in C:\Foo.Testing.Common\bin\Debug\netcoreapp3.1\Foo.Testing.Common.dll. Make sure that test discoverer & executors are registered and platform & framework version settings are appropriate and try again.
Microsoft.VisualStudio.TestPlatform.ObjectModel.TestPlatformException...

我假设测试过程在 test 上匹配以查找测试项目,然后如果这些项目之一没有测试则抛出错误。或者它正在寻找引用任何 xunit 包的项目?

我们可以重命名项目,但有其他不同的方法吗?希望避免将特定测试项目的列表传递给命令行,以避免“未找到测试”警告。也就是说,dotnet test 应该可以正常工作。

更新:我也试过只引用 xunit.abstractionsxunit.extensibility.core 而不是主 xunit 包,但 Common 项目仍然被识别为测试项目。

还尝试在项目属性中将 IsTestProject 设置为 false。

解决方法

为了跳过 Foo.Testing.Common,您可以在 Foo.Testing.Common.csproj 中将 IsTestProject 属性设置为 false:

<PropertyGroup>
  <IsTestProject>false</IsTestProject>
</PropertyGroup>

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。