MSTest:CS0117 'Assert' 不包含 'ThrowsException' 的定义
MSTest: CS0117 'Assert' does not contain a definition for 'ThrowsException'
我正在使用 C#、MSVS 2015 和 .Net 4.6.1 使用 MSTest 编写一些单元测试。
这一行:
Assert.ThrowsException<ArgumentOutOfRangeException>( () =>
select.AllSelectedOptions[0]
);
因此编译错误而失败:
CS0117 'Assert' does not contain a definition for 'ThrowsException'
我的命名空间是 Microsoft.VisualStudio.TestTools.UnitTesting
(在 MSVS 中创建单元测试项目时的默认命名空间)。
根据文档,Assert.ThrowsException(Action) 应该存在。但是我在 Intellisense 中看不到它...我遇到了编译错误。
我尝试了几个不同版本的 MSVS(MSVS 2015 和 MSVS 2019)和几个不同版本的 MSTest。
问:有什么想法可能是错误的吗?
正如克林特所说 , I need to install MSTest v2 来自 NuGet 以便在 MSVS 2015 中使用 Assert.ThrowsException<T>()
。
但是在这样做之后,MSVS 不再找到我的任何测试:
MSVS > 测试 > 运行 全部(或 "Test > Debug > All Tests"):
------ Discover test started ------
========== Discover test finished: 0 found (0:00:01.127375) ==========
有什么建议吗?
您需要使用 [MSTest V2] 才能 Assert.ThrowsException
从 VS2017 开始,内置 单元测试 项目模板仅使用 MSTest V2。
现在您使用的是 VS2015,您可以从 Nuget[安装此包 MSTest.Test =40=] 但请确保在升级到此包之前删除旧的测试引用 Microsoft.VisualStudio.QualityTools.UnitTestFramework
添加 > 新建测试项目 > Select MSTest 项目类型
之后你应该可以使用 Assert.ThrowsException<ArgumentOutOfRangeException>(
到discover and execute 测试也确保安装MSTest.Test适配器。
进一步Reading
我正在使用 C#、MSVS 2015 和 .Net 4.6.1 使用 MSTest 编写一些单元测试。
这一行:
Assert.ThrowsException<ArgumentOutOfRangeException>( () =>
select.AllSelectedOptions[0]
);
因此编译错误而失败:
CS0117 'Assert' does not contain a definition for 'ThrowsException'
我的命名空间是 Microsoft.VisualStudio.TestTools.UnitTesting
(在 MSVS 中创建单元测试项目时的默认命名空间)。
根据文档,Assert.ThrowsException(Action) 应该存在。但是我在 Intellisense 中看不到它...我遇到了编译错误。
我尝试了几个不同版本的 MSVS(MSVS 2015 和 MSVS 2019)和几个不同版本的 MSTest。
问:有什么想法可能是错误的吗?
正如克林特所说 Assert.ThrowsException<T>()
。
但是在这样做之后,MSVS 不再找到我的任何测试:
MSVS > 测试 > 运行 全部(或 "Test > Debug > All Tests"):
------ Discover test started ------
========== Discover test finished: 0 found (0:00:01.127375) ==========
有什么建议吗?
您需要使用 [MSTest V2] 才能 Assert.ThrowsException
从 VS2017 开始,内置 单元测试 项目模板仅使用 MSTest V2。
现在您使用的是 VS2015,您可以从 Nuget[安装此包 MSTest.Test =40=] 但请确保在升级到此包之前删除旧的测试引用 Microsoft.VisualStudio.QualityTools.UnitTestFramework
添加 > 新建测试项目 > Select MSTest 项目类型
之后你应该可以使用 Assert.ThrowsException<ArgumentOutOfRangeException>(
到discover and execute 测试也确保安装MSTest.Test适配器。
进一步Reading