首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >在Visual Studio代码中找不到Xunit命名空间

在Visual Studio代码中找不到Xunit命名空间
EN

Stack Overflow用户
提问于 2017-07-16 19:08:10
回答 5查看 13.9K关注 0票数 12

我正在为一个.NET核心项目使用Visual Studio代码。我有一个ASP.NET核心项目,我想为它创建一个单独的单元测试项目,我创建了一个子文件夹并运行

代码语言:javascript
复制
dotnet new xunit
dotnet restore

当我尝试从cli "dotnet build“"dotnet run”运行它时,它运行成功,但是在visual studio中,它显示找不到命名空间Xunit。

这非常奇怪,因为到目前为止,Visual Studio代码对我来说工作得很好,它从来没有依赖关系的问题,只有Xunit有这个问题。

有人熟悉这个问题吗?

EN

回答 5

Stack Overflow用户

回答已采纳

发布于 2017-07-16 20:01:42

我尝试使用vscode直接打开测试项目(而不是打开子文件夹中包含测试项目的根项目),现在vscode可以识别Xunit。

然后,我再次使用vscode打开根项目,将Xunit添加到根项目的csproj文件中,在根项目中运行"dotnet restore“,现在Xunit在测试项目中被识别。

问题是vscode (或者是Omnisharp?我不确定)可能只查看根csproj文件,而忽略恰好在子文件夹中的任何csproj文件。

票数 10
EN

Stack Overflow用户

发布于 2017-11-03 17:15:17

我也有同样的问题。通过在命令面板中输入"Restart Omnisharp“解决了这个问题。

票数 24
EN

Stack Overflow用户

发布于 2018-08-03 02:14:32

将xunit引用添加到根csproj可能是不可取的。

问题所在

将测试放在单独的csproj中的想法是,它们及其依赖项不会包含在主项目中。但是,将xunit添加到根csproj将导致主项目引用xunit。根据产品的捆绑方式,这将导致不必要地包含xunit dll和它所依赖的所有dll。

不幸的是,Omnisharp的嵌套csproj有一个问题。看起来根csproj将声明所有子目录中的所有源文件,即使有嵌套的csproj。这会导致缺少引用错误。

解决方案

不要嵌套csproj。请注意Microsoft's xunit setup guide如何将主csproj及其测试csproj放入sln的不同子目录中。

我最初也遇到了这个错误,在重新构建项目以不嵌套csproj之后,错误得到了解决;只有测试csproj引用了xunit。

票数 12
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/45127849

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档