如何安装XUnit Visual Studio Run once per station

How to install XUnit VisualStudio Runner once per station

已编辑: 为了使用 xUnit VisualStudio Runner,需要将其安装为 Nuget package。这种方法是有问题的,因为 (1) 用户有义务将此包添加到它正在创建的 每个 项目,以及 (2) 对包二进制文件的引用有问题。

(1) 这似乎并不重要,但要求为每个项目添加一个包是用户必须执行的另一项手动操作,这是我们希望删除的不必要的开销。

(2) 我们的产品(不幸的是)没有保持恒定的解决方案层次结构。结果,每个人都创建了适合自己的解决方案。因此,packages 文件夹位置会根据解决方案文件的位置而变化。它反过来反映了关于 xUnit VisualStudio Runner 包位置的硬编码到项目文件 (.csproj) 中的路径,这使得无法管理代码(每个用户在工作期间都被迫更改项目文件)。

我们正在寻找一种无需使用 Nuget 包注册过程即可将 xUnit VisualStudio Runner 二进制文件注册为单元测试运行器的方法。

我将不胜感激有关该主题的任何提示。我发现没有办法向 xUnit 开发人员询问这个问题。我已经回顾了它正式完成的方式 here and here。 执行这项工作的 VS extension 声称已过时,不能再安装在 VS 上。

谢谢。

我已经成功地为使用 XUnit Nuget 包的 VS2015 创建了 VS 扩展。该扩展将包的二进制文件安装为 UnitTest 适配器。您可以在 xunit-vs-adapter 中找到一个包。请注意,它使用特定版本的 XUnit 适配器。我没有做最新版本的动态上传

您可以创建包含 NuGet 参考的公司单元测试项目模板,而不是将 NuGet 适配器作为 Vsix 分发。如果您想更进一步,您可以将这些项目模板作为扩展上传到私人扩展库。

创建新测试项目的用户将自动包含正确的 NuGet 包,您不需要让每个用户都安装 VSIX。

另见

你可以use MyGet to easily host a private Extension gallery, or download one of the free open-source solutions.

背景

为什么这很重要的一些背景知识:

  • 通过在解决方案中不包含 NuGet 包,CI 服务器(例如 TFS Build)将需要安装匹配版本的运行器,否则开发人员工作站和构建服务器。
  • 如果构建服务器安装了特定版本的运行器,当运行器发生重大变化时,将很难迁移到新版本的 XUnit(例如,NUnit 3 与 2.6 不兼容)。您要么必须坚持使用旧框架,要么立即升级所有解决方案,要么为新解决方案启动新的构建服务器。
  • 它不允许开发人员在处理较旧的解决方案(引用较旧版本的 XUnit)的同时还处理可能针对最新版本的 XUnit 的新解决方案。

创建项目模板非常简单,尤其是当您使用 SideWaffle 时。分发将使您能够以更少的步骤帮助您的开发人员,同时让您可以自由地将您的解决方案与您的工作站配置分离。