【问题标题】:Visual Studio test discovery not picking up Test in a referenced DLLVisual Studio 测试发现未在引用的 DLL 中获取测试
【发布时间】:2016-10-03 13:41:59
【问题描述】:

我有一个本地 nuget 包,其中包含一个测试。测试用[TestClass]修饰,它的测试方法是[TestMethod]。

这是一个 nuget 包的原因是因为此测试将被引入任何测试项目,以测试在引用的程序集中发生了 t4 转换。 t4 模板动态生成类,我希望运行测试以验证 t4 模板是否已执行(使用反射确保生成的类具有预期的方法)

当我引用 nuget 包时,Visual Studio 测试资源管理器从不显示测试。我的印象是 VS 反映了程序集中的类型来构建它的测试列表,但这似乎是一个不正确的假设。

为了发现测试,我是否缺少配置设置或其他东西?

谢谢你, 杰森

【问题讨论】:

  • 你能分享一下你的包含测试的金块包吗?也许您可以与我分享有关您如何真正创建特定包和测试项目的详细步骤。所以我可以在我身边重现这个问题。
  • 我有一个压缩解决方案。我应该把它寄到哪里?
  • 您可以将其上传到一个驱动器:onedrive.live.com。并在此处分享链接。
  • 运行 nuget pack MyMainProject.NugetTest.csproj,然后尝试在 MyMainProject.Tests 中添加对该包的引用。您应该会看到 nuget 包中的测试不会显示在测试资源管理器中

标签: unit-testing visual-studio-2015 nuget t4 test-explorer


【解决方案1】:

Visual Studio 测试资源管理器只能从解决方案中的多个测试项目以及作为生产代码项目一部分的测试类运行测试。

您的方案有两种解决方法:

  1. Run the test from command line.

  2. 不是将生成的 dll 文件放在 nuget 包中,而是将测试类文件放在 nuget 包的“content”文件夹中。这将在安装 nuget 包时将测试类文件添加到您的项目中,然后测试资源管理器将在构建解决方案后检测测试。

【讨论】:

  • 在 MS 方面是否存在解决此问题的错误或未解决问题。这对我来说是一个非常令人沮丧的错误,因为我有很多内置测试的 nuget 包
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2017-08-09
  • 2014-10-07
  • 1970-01-01
  • 1970-01-01
  • 2017-10-30
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多