创建新项目后(例如.net核心)解决方案的global.json看起来像那样
{
"projects": [ "src", "test" ],
"sdk": {
"version": "1.0.0-preview2-003131"
}
}
新项目在 src 文件夹中创建,解决方案文件夹中存在一个物理文件夹。虽然global.json出现在visual studio中的 Solution Items 解决方案文件夹中,但不存在名为解决方案项的物理文件夹。
现在,如果我添加一个单元测试项目,它只是在解决方案文件夹中创建,它不会创建任何名为 test 的解决方案文件夹或物理文件夹。
然后我创建了一个测试文件夹,它不会出现在VS上,并且创建新的测试项目不会在测试物理文件夹中创建。
如果我添加另一个新项目,则在 src 文件夹中创建新项目。如果我添加任何项目(例如XMLFile),则将其添加到 Solution Items 解决方案文件夹中。但是,如果您添加测试项目,如果只是出现在解决方案文件夹
下面现在我的项目
,物理文件夹如下所示
然而,我的问题是关于行为的差异。
我还注意到,如果测试项目不在测试文件夹中,有时候,它没有找到xunit或nunit测试,但是它找到了MSTest测试。那么,我的观点是global.json中的 test 如何帮助我们?
答案 0 :(得分:0)
这里发生了一些事情。
Projects JSON元素
将此视为.sln文件的工作方式。它告诉Visual Studio在哪里查找要加载的项目。这些实际上也可以是完整路径(e.x. C:\ Projects \ SomeOtherProject)。您应该查看此处的官方文档,其中包含更多内容:https://docs.microsoft.com/hu-hu/dotnet/articles/core/tools/global-json
还应该注意的是,在即将发布的.net核心版本(目前标记为预览版4)中,我们将返回.sln文件,因此已删除了global.json项目元素(请参阅此处:{{3} })
您的新项目在哪里放置?
老实说,这只是惯例。当您在Visual Studio中创建项目时,系统会询问您要将项目放在何处,这取决于您...如果您希望将所有内容放在一个解决方案文件夹中,那就没问题了。现在你的代码中有一个“src”文件夹,根目录中有readme.md等,这似乎是一个惯例。
显然,如果您使用dotnet new或yeoman创建项目,您可以完全控制正在发生的事情。您的代码 不在“src”文件夹中。
.net核心测试
我可以通过测试看到你走错了路。请先快速阅读本文:https://docs.microsoft.com/hu-hu/dotnet/articles/core/preview3/tools/global-json
所以有几件事。
.net核心测试现在是“控制台”应用程序。或至少是创建的 他们在VS.
您需要安装特定的测试运行器包才能运行测试 (MSTest,XUnit和NUnit存在测试运行器)。
您可以使用“dotnet test”从命令行运行测试。