如何在 Visual Studio 代码中构建带有单元测试的 asp.net 5 dnx 项目?
How to structure an asp.net 5 dnx project with unit tests in Visual Studio Code?
我刚刚使用 yeoman 生成器创建了一个新的 asp.net 5 项目。到目前为止一切正常,我可以使用 Visual Studio 代码编辑和构建项目。
现在我想添加单元测试,但它们在 VS Code 中的结构如何?在 Visual Studio 中,正常的方法是添加一个包含测试的新项目,如 xUnit.net documentation 中所述。但是,在 VS Code 中,我不能只添加一个项目,对吗?我在哪里进行测试? yeoman 生成器也会创建一个新项目,但这意味着我必须有第二个 VS Code 运行 实例和第二个 git 存储库或一个奇怪的文件夹结构。
没有什么可以阻止您在 Visual Studio 代码的单个实例中拥有多个项目。 ASP.NET 核心项目的默认项目结构实际上使用了多个文件夹。您可以在 GitHub 上的所有 ASP.NET 核心项目中看到该结构在起作用,例如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 集成似乎不允许将脚手架项目放入子文件夹中。所以你需要做的是自己创建 src
和 test
文件夹,分别搭建你的项目并将它们移动到适当的文件夹中。例如,我开始创建一个名为 Example
的“空 Web 应用程序”,然后创建一个名为 Example.Test
的“单元测试项目 (xUnit.net)”。然后,我简单地将Example
拖到src
文件夹中,将Example.Test
拖到test
。
因此项目的根目录,以及您使用 VS Code 打开的文件夹,以及您将在其中初始化存储库的文件夹,是那些 src
和 test
文件夹所在的目录. 例如,我的项目(使用 Git 和 vscode 特定配置设置)现在看起来像这样:
─ .git
─ .vscode
─ src
└─ Example
─ test
└─ Example.Test
─ global.json
─ README.md
这种结构的好处实际上是它还与创建新解决方案时 Visual Studio 的做法兼容。
我刚刚使用 yeoman 生成器创建了一个新的 asp.net 5 项目。到目前为止一切正常,我可以使用 Visual Studio 代码编辑和构建项目。
现在我想添加单元测试,但它们在 VS Code 中的结构如何?在 Visual Studio 中,正常的方法是添加一个包含测试的新项目,如 xUnit.net documentation 中所述。但是,在 VS Code 中,我不能只添加一个项目,对吗?我在哪里进行测试? yeoman 生成器也会创建一个新项目,但这意味着我必须有第二个 VS Code 运行 实例和第二个 git 存储库或一个奇怪的文件夹结构。
没有什么可以阻止您在 Visual Studio 代码的单个实例中拥有多个项目。 ASP.NET 核心项目的默认项目结构实际上使用了多个文件夹。您可以在 GitHub 上的所有 ASP.NET 核心项目中看到该结构在起作用,例如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 集成似乎不允许将脚手架项目放入子文件夹中。所以你需要做的是自己创建 src
和 test
文件夹,分别搭建你的项目并将它们移动到适当的文件夹中。例如,我开始创建一个名为 Example
的“空 Web 应用程序”,然后创建一个名为 Example.Test
的“单元测试项目 (xUnit.net)”。然后,我简单地将Example
拖到src
文件夹中,将Example.Test
拖到test
。
因此项目的根目录,以及您使用 VS Code 打开的文件夹,以及您将在其中初始化存储库的文件夹,是那些 src
和 test
文件夹所在的目录. 例如,我的项目(使用 Git 和 vscode 特定配置设置)现在看起来像这样:
─ .git
─ .vscode
─ src
└─ Example
─ test
└─ Example.Test
─ global.json
─ README.md
这种结构的好处实际上是它还与创建新解决方案时 Visual Studio 的做法兼容。