5

我最近安装了 Visual Studio 2013,CodeLens 真是太棒了!我发现的问题是,每当我打开一个包含方法的类文件时,如果它不是用 MSTest 编写的,它似乎找不到与该方法关联的单元测试。我必须做些什么才能找到其他单元测试,如 MSpec?

在此处输入图像描述

是因为 Machine Specifications 在创建单元测试与 MSTest 或其他测试框架时有不同的方法吗?

4

2 回答 2

3

测试者和测试状态指示器由测试资源管理器提供支持。

因此,如果您的 MSpec 测试出现在测试资源管理器中并且是用 C# 或 VB 编写的,那么它们也应该出现在 CodeLens 中。

(与带有 NUnit 的 Visual Studio 2013 功能代码镜头相同的答案)

通过在扩展管理器中安装 Nunit 和 Nunit 扩展,我只是在干净的机器上使用 NUnit 完成了它。这里Main显示一个参考和一个通过测试,并且测试本身在成功运行后显示复选标记。

在此处输入图像描述

于 2013-11-05T20:23:46.330 回答
1

我做了约翰·加德纳在他的回答中展示的同样的事情,除了我把它分成 2 个项目(模仿我在实际解决方案中使用的设置)。起初它没有工作,即使我可以在测试资源管理器中看到测试。经过一番搜索,我偶然发现了适合我情况的正确答案。

事实证明,您需要:

(1)新建单元测试项目(不是类库)

(2)在Unit Test项目中添加NUnit引用(我用的是NuGet)并在VS2013中安装了NUnit Test Adapter

(3) 将您的测试移至这个新项目

(4) 保存并构建后,现在您可以返回到您的生产代码并查看“x/y 通过”消息并在“测试资源管理器”窗口中查看单元测试。

我们大多数使用 NUnit 很长时间的人都习惯于为我们的代码创建类库而不是单元测试项目。如果 CodeLens 文档实际上直接涵盖了这一点,那就太好了(文档指出“测试状态指示器会自动出现在测试项目中”,这是我的线索)。

于 2014-12-29T02:32:35.260 回答