如何测试.Net Core测试项目引用的.NETStandard组装测试?

时间:2019-02-18 22:17:24

标签: .net .net-core nunit .net-standard

我将测试收集在.NetStandard项目(程序集)中(因为我需要通过非常不同的平台进行测试)。 我们不能直接运行它们,因为它要求项目定位诸如.NetFramework或.Net Core之类的东西。

因此,我创建了.Net Core项目并引用了.NetStandard项目。

但是,当运行dotnet test ...csproj时,我显然会收到

  

...中没有可用的测试。请确保测试发现者&   执行者已注册,平台和框架版本设置已注册   适当,然后重试。

...因为显然没有魔术和测试适配器无法读懂我的想法并自动进入任何引用的程序集。

但是,必须有某种提及方式,对吗? The documentation对此相当谦虚,因此我什至不知道这种方法是否普遍可行。 但是,在使用TestRunners测试Xamarin.iOS / Android时,他们总是可以选择添加我的程序集进行测试,例如:runner.Add(typeof(MyTestClass).Assembly)

更新:需要明确指出的是,这个问题点实际上不是关于针对不同平台的问题,而是找到了运行方式.Net Core项目进行的测试(已经已用于Xamarin的方式)

  1. 应将测试放置在单独的项目/程序集中,因为Xamarin测试项目实际上并不以通用的方式运行(它们实际上是通过iOS / Android应用程序内部的测试运行器运行)。
  2. 通过这种方法,可以在.NETStandard程序集中进行测试,该程序可以附加到其他任何地方。
  3. 同样,此已经有效通过测试运行程序(NUnit一个)用于Xamarin(将我的.NETStandard库附加到测试的特定于平台的项目),但不适用于.NET Core项目。
  4. 不需要在.NET Standard程序集本身上运行测试,我需要可从可测试的.NET Core项目中引用它们。

有什么办法能让我幸运吗?

0 个答案:

没有答案