4

Visual Studio 文件夹结构

我需要一些关于如何在 Visual Studio 中轻松分离单元测试和集成测试的测试运行的建议。通常,或总是,我按照上图所示构建解决方案:单元测试和集成测试的单独项目。单元测试运行非常频繁,而集成测试自然会在上下文正确对齐时运行。

我的目标是在我使用键盘快捷键时能够以某种方式配置要运行的测试(或测试文件夹)。测试最好由图形测试运行程序 (ReSharpers) 运行。所以例如

  • Alt+1 在项目 BLL.Test 中运行测试,
  • Alt+2 在项目 DAL.Tests 中运行测试,
  • Alt+3 同时运行它们(即 [Tests] 文件夹中的所有测试,以及
  • Alt+4 运行文件夹 [Tests.Integration] 中的测试。

TestDriven.net 可以选择只运行所选文件夹或项目中的测试,方法是右键单击它并选择 Run Test(s)。能够做到这一点,但通过键盘命令和图形测试运行器会很棒。

TestDriven.net 测试运行输出

目前我使用 VS2008、ReSharper 4 和 nUnit。但是,一般设置的建议当然也值得赞赏。

4

4 回答 4

2

实际上,我通过使用绑定到宏的键盘命令自己找到了一种解决方案。宏是从菜单工具>宏>记录临时宏中记录的。在录制时,我选择了我的 [Tests] 文件夹并运行了 ReSharpers UnitTest.ContextRun。这导致了以下宏,

Sub TemporaryMacro()
    DTE.Windows.Item(Constants.vsWindowKindSolutionExplorer).Activate
    DTE.ActiveWindow.Object.GetItem("TestUnitTest\Tests").Select(vsUISelectionType.vsUISelectionTypeSelect)
    DTE.ExecuteCommand("ReSharper.UnitTest_ContextRun")
End Sub

然后在工具>选项>环境>键盘中绑定到它自己的键盘命令。

然而,更棒的是一个更通用的解决方案,我可以准确地配置要运行的项目/文件夹/类以及何时运行。例如通过 xml 文件。然后可以轻松地将其签入版本控制并分发给与该项目一起工作的每个人。

于 2008-08-17T22:08:13.627 回答
0

这是一个有点繁琐的解决方案,但是您可以为要运行的每组测试配置一些外部工具。我不确定您是否能够以这种方式启动 ReSharper 测试运行程序,但您可以运行 nunit 的控制台版本。完成这些工具设置后,您可以为命令“Tools.ExternalCommand1”、“Tools.ExternalCommand2”等分配键盘快捷键。

这不会很好地扩展,而且改变起来很尴尬 - 但它会给你键盘快捷键来运行你的测试。确实感觉应该有一种更简单的方法来做到这一点。

于 2008-08-17T21:52:03.737 回答
0

您可以使用 VS 宏来解析 XML 文件,然后使用 /fixture 命令行参数调用 nunit.exe 以指定要运行的类或生成选择保存文件并使用该文件运行 nunit。

于 2008-08-18T01:47:11.017 回答
0

我从来没有用过这个,但也许它可以帮助....

http://www.codeplex.com/VS2008UnitTestGUI

“项目描述这个项目是关于在使用 Visual Studio 2008 编码的多个 .NET 单元测试程序集中运行所有单元测试。”

于 2008-08-25T04:03:06.313 回答