【发布时间】:2018-11-17 16:18:34
【问题描述】:
我有一个使用 .NET Standard 2.0 的类/库项目,我想直接在项目中添加单元测试(这样更容易发现并且耦合度更高)。但是,因为每个测试框架都需要特定的平台,所以我不得不添加另一个框架,例如 .NET Core。
我需要将此项目构建为 .NET Standard 只是因为我需要在另一个项目(Unity 项目,其中选择的框架是 .NET Standard 2.0)中使用它。
我是否可以将 .NET Core 添加到项目中,以便我可以使用单元测试框架,但仅使用 .NET Standard 构建最终的 dll?
或者我应该放弃并使用另一个引用该项目的项目来代替吗?因为如果单元测试直接嵌入到项目中会更舒服,以免在发生变化时更新单元测试。
【问题讨论】:
-
虽然我不太明白为什么需要在 .net 核心上运行测试,但我也不明白为什么它不能像你描述的那样工作。大约需要 10 分钟才能确定。
-
Here it's stated "Visual Studio 和 VSTest 要求测试以特定平台为目标......对于包括 [nunit] xUnit 和 MSTest2 在内的所有测试适配器,此限制都是相同的。"这就是我需要 .NET Core 的原因。
-
好的。您是否尝试过连接一个小型演示以查看它是否有效?
-
stackoverflow.com/questions/52210304/… 这可能有助于回答您的问题。
-
我知道这不是您要的,但是将您的单元测试与正在测试的代码放在同一个项目中是一种不寻常的设置;我建议遵循单独测试程序集的通常模式(在您的情况下,它针对 .NET Core)。两个项目可以在同一个解决方案中,所以我认为当你的代码发生变化时你不太可能记得更新你的测试。