2

我在基于开发人员的测试的单元测试场景中使用了很多 NUnit,但我希望利用 GUI 和测试功能为我的 QA 团队提供一个测试套件,他们可以为所有组件或部分组件等运行,因为GUI 非常适合这一点。

但是我一直在努力解决的是如何在我的解决方案中对其进行建模,我需要部署什么,如何部署 NUnit 等等。

我打算有一个用于测试的类库,一个由 QA 团队运行的控制台应用程序,他们可以传递参数以自动运行测试子集,这将产生 NUnit 控制台并运行这些测试,或者它们只是在没有参数的情况下运行我的控制台应用程序,它会加载 NUnit GUI,他们可以浏览他们喜欢的任何测试。

但是由于 NUnit 被部署为一个大型二进制项目,需要由 Process.Start 运行,我不确定如何部署它,因为 NUnit 有一个很大的目录结构,我不确定如何将它包含在我的项目构建中,它在哪里将是等

有没有人做过类似的事情并对如何最好地做到这一点有任何建议?

4

1 回答 1

2

部署 nunit 二进制文件的一种方法是使用 NuGet - 有一个 NUnit.Runner nuget 包,其中包含所有二进制文件、gui 等 - 您只需要提供可测试的二进制文件。

所以 - 在您的 CI/构建过程中创建一个步骤,该步骤将创建一个仅包含您的测试和支持程序集的 nuget 包。在 .nuspec 文件中,使“NUnit.Runner”成为一个依赖包。现在你有一个 nuget 包,其中包含你所有的东西和你需要的所有 NUnit .exe 的链接……下一个挑战是把这个包放到你的测试人员桌面上。最好的方法是使用您自己的私有 NuGet 提要/服务器或 NaaS...myget.org。

在这一点上,我会说我创建了以下解决方案 - 我认为还有其他可用的解决方案,例如 Chocolatey 也是如此。

我构建了一个名为“sidewinder”(sidewinder.codeplex.com)的nuget包 - 这个包包含“sidewinder.exe” - 这个exe将从任何nuget feed(官方,myget,自定义)下载一个nuget包,然后解压缩的内容打包并将文件复制到您选择的任何文件夹。因此,如果您的 CI 过程为您的测试程序集创建了一个新的包版本,sidewinder.exe,一旦安装在您的测试机器上,将能够检测到新版本,下载、解包和部署它。您甚至可以在包中包含一个批处理文件,该文件运行正确的命令行来启动 gui 或控制台运行程序。

对于奖励积分,有一个自动版本 - wolfpack (http://wolfpack.codeplex.com) 有一个插件 (http://wolfpackcontrib.codeplex.com/wikipage?title=Wolfpack.Contrib.Deployment) 可以监控特定包的新版本的 nuget 提要,并自动为您下载、解包和运行 nunit 测试——它将根据测试结果创建通知。

高温高压

于 2012-05-22T22:06:08.530 回答