【问题标题】:How to structure an asp.net 5 dnx project with unit tests in Visual Studio Code?如何在 Visual Studio Code 中构建带有单元测试的 asp.net 5 dnx 项目?
【发布时间】:2016-09-10 17:26:57
【问题描述】:

我刚刚使用 yeoman 生成器创建了一个新的 asp.net 5 项目。到目前为止一切正常,我可以使用 Visual Studio Code 编辑和构建项目。

现在我想添加单元测试,但它们在 VS Code 中的结构如何?在 Visual Studio 中,通常的方法是添加一个包含测试的新项目,如 xUnit.net documentation 中所述。但是,在 VS Code 中,我不能只添加一个项目,对吗?我应该把测试放在哪里? yeoman 生成器也会创建一个新项目,但这意味着我必须运行第二个 VS Code 实例以及第二个 git repo 或奇怪的文件夹结构。

【问题讨论】:

  • 到目前为止我已经通过切换到Visual Studio解决了这个问题,但是默认生成器不支持这个似乎很奇怪。

标签: c# unit-testing asp.net-core visual-studio-code asp.net5


【解决方案1】:

没有什么可以阻止您在单个 Visual Studio Code 实例中拥有多个项目。 ASP.NET Core 项目的默认项目结构实际上使用了多个文件夹。您可以在 GitHub 上的所有 ASP.NET Core 项目中看到该结构的运行情况,例如MVC one:

─ src
   ├─ Microsoft.AspNetCore.Mvc
   ├─ Microsoft.AspNetCore.Mvc.Abstractions
   ├─ Microsoft.AspNetCore.Mvc.Core
   └─ Microsoft.AspNetCore.Mvc.Razor
─ test
   ├─ Microsoft.AspNetCore.Mvc.Abstractions.Test
   ├─ Microsoft.AspNetCore.Mvc.Core.Test
   ├─ Microsoft.AspNetCore.Mvc.Razor.Test
   └─ Microsoft.AspNetCore.Mvc.Test

其中每一个都是一个包含完全独立项目的文件夹,有自己的project.json,用于定义项目并设置依赖项。

不幸的是,VS Code 中的 Yeoman 集成似乎不允许将项目搭建到子文件夹中。因此,您需要自己创建srctest 文件夹,分别为您的项目搭建脚手架并将它们移动到适当的文件夹中。例如,我开始创建一个名为 Example 的“空 Web 应用程序”,然后创建一个名为 Example.Test 的“单元测试项目 (xUnit.net)”。然后,我简单地将Example 拖入src 文件夹,将Example.Test 拖入test

所以项目的根目录,也就是你用 VS Code 打开的文件夹,以及你将在哪里初始化你的存储库,是那些 srctest 文件夹所在的目录。例如,我的项目(使用 Git 和 vscode 特定配置进行设置)现在看起来像这样:

─ .git
─ .vscode
─ src
   └─ Example
─ test
   └─ Example.Test
─ global.json
─ README.md

这种结构的好处实际上是它还与 Visual Studio 在您创建新解决方案时所做的兼容。

【讨论】:

  • 如果我通过 GitHub 使用 CI 将我的 aspnet 核心应用程序部署到 Azure,我应该如何组织我的文件夹?如果我在一个 repo 中有 src 和 test 文件夹,Azure 如何理解从哪个文件夹运行部署脚本?
  • @DmitryGorshkov 这里有同样的问题......如何告诉 Azure 在 src 中选择一个项目进行部署。有什么想法吗?
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-08-29
  • 2021-07-23
  • 1970-01-01
相关资源
最近更新 更多