gpt4 book ai didi

c# - MSTest:CS0117 'Assert' 不包含 'ThrowsException' 的定义

转载 作者:行者123 更新时间:2023-12-05 02:56:37 28 4
gpt4 key购买 nike

我正在使用 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。

问:有什么想法可能是错误的吗?


正如克林特所说 below , 我需要安装 MSTest v2来自 NuGet,以便使用 Assert.ThrowsException<T>()在 MSVS 2015 中。

但是在这样做之后,MSVS 不再找到我的任何测试:

MSVS > 测试 > 全部运行(或“测试 > 调试 > 所有测试”):

------ Discover test started ------
========== Discover test finished: 0 found (0:00:01.127375) ==========

有什么建议吗?

最佳答案

您需要使用 [MSTest V2] 才能 Assert.ThrowsException

VS2017 开始,内置的 单元测试 项目模板仅使用 MSTest V2。

现在你在 VS2015 上,你可以从 Nuget 安装这个包 MSTest.Test 但一定要删除旧的测试引用喜欢Microsoft.VisualStudio.QualityTools.UnitTestFramework在升级到这个包之前

添加 > 新建测试项目 > 选择 MSTest 项目类型

在此之后你应该可以使用 Assert.ThrowsException<ArgumentOutOfRangeException>(

收件人 discover and execute测试还确保安装 MSTest.TestAdapter。

进一步Reading

关于c# - MSTest:CS0117 'Assert' 不包含 'ThrowsException' 的定义,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60245431/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com