自从我安装VS 2017以来,我一直在与它斗争。现在,单元测试似乎只能从命令行“dotnet test”运行。

我的项目是。net Core 1.1.1。我已经安装了SDK和1.1.1的框架更新。

我在MSDN (https://msdn.microsoft.com/en-us/library/ms182532.aspx)上尝试了样本,也失败了。

所有用于测试和主项目的NuGet包都是最新的。测试项目和主项目的构建都没有错误。测试从命令行成功运行。

有人让单元测试在VS 2017中运行吗?如果是的话,是怎么做的?

谢谢, 约翰


更新-扩展

下面是一个简单的测试项目的例子,它不能在GitHub上运行。这是一个xUnit的例子,但我已经尝试了在MS测试中内置的NUnit和visual studio。无论我做了什么测试或做了什么更改,我都无法让VS测试运行器找到任何测试。

我的努力

删除VS测试缓存文件DEL %TEMP%\VisualStudioTestExplorerExtensions 重新启动和 关闭/打开测试资源管理器 为xUnit安装Microsoft.DotNet.InternalAbstractions(见SO post) 对于NUnit,确保适配器安装和NUnit包相同的版本(3) Test -> Test Settings ->默认处理器架构设置为x86

这个问题 谁能提供一个VS2017中。net Core 1.1.0解决方案的工作示例?csproj项目文件),其中VS测试资源管理器成功找到单元测试或在给出的例子中显示问题。


当前回答

我删除了项目的BIN和OBJ文件夹。一旦我这样做了,一切都正常工作了。

其他回答

对我来说,创建一个在Visual Studio 2017中完美运行的新测试项目更容易……只需要复制测试文件,添加引用,并根据需要添加NuGet包。

我也面临着同样的问题,在我的情况下才能解决

我打开windows控制台(windows键+ cmd)。 导航到创建项目的文件夹。 执行命令“dotnet test”,它基本上与visual studio执行的测试相同,但当你通过控制台运行它时,它可以让你看到完整的跟踪。 我得到了这个错误信息"TestClass属性定义在非公共类mstest。testcontroller。basetest " 所以我去到测试用例并将其标记为公共,重新构建,我的测试被正确显示

检查NUnit 3测试适配器是否已启用。在我的情况下,我已经安装了很久以前,但突然它被禁用了。我花了好长时间才决定检查这部分……

在我的案例中,当我将项目转移到新的解决方案后,测试资源管理器无法找到我的测试。

答案很简单,我在我的项目中引用了旧的MS测试适配器。

我在我的电脑中有一个MS测试适配器版本1.1.11的副本。项目文件:

<进口项目= " \ packages MSTest TestAdapter。1.1。18 \构建net45 \ MSTest TestAdapter。道具“雾=“Exists (TestAdapter \ packages MSTest。1。1 . 18构建\ net45 \ MSTest TestAdapter道具)”。/>

为了解决这个问题,

右键单击项目并选择“卸载项目”。 右键单击项目,选择“编辑” 删除导入旧版本适配器的行。 右键单击项目并选择“重新加载项目”。 重建解决方案/项目

对我来说,问题在于我错误地将测试用例放在了一个内部类中

[TestClass]
internal class TestLib {
}

这导致测试用例没有被识别。