gpt4 book ai didi

c# - 从命令行运行时 mstest v2 忽略 ExpectedException

转载 作者:行者123 更新时间:2023-12-02 15:38:24 25 4
gpt4 key购买 nike

我正在尝试使用新的“mstest v2”框架,但在从命令行使用 mstest.exe 运行测试时遇到问题。具体来说,ExpectedExceptionAttribute 和 DeploymentItemAttribute 不起作用。

这是我的示例测试:

[TestMethod]
[ExpectedException(typeof(NotImplementedException))]
public void ExpectedExceptionShouldWork()
{
throw new NotImplementedException(
"This exception should not cause the test to fail");
}

我很确定这是由从Microsoft.VisualStudio.TestPlatform.TestFramework 程序集而不是来自Microsoft.VisualStudio.QualityTools.UnitTestFramework - 然后 mstest.exe 无法识别它们。

我们在构建服务器 (Teamcity) 中运行 mstest.exe,测试失败,尽管它们在 IDE 中成功。在本地运行时,Mstest.exe 也会失败

"C:\Program Files (x86)\Microsoft Visual Studio\2017\Professional\Common7\IDE\MSTest.exe" /testcontainer:bin\Debug\Dummy.Test.dll

当我的项目引用 Microsoft.VisualStudio.QualityTools.UnitTestFramework 时,它可以在命令行和 IDE 中运行。

如果我随后添加对 MSTest.TestFramework v 1.1.13 的 nuget 引用,则会出现编译错误:

Error   CS0433  
The type 'TestClassAttribute' exists in both
'Microsoft.VisualStudio.QualityTools.UnitTestFramework,
Version=10.1.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a' and
'Microsoft.VisualStudio.TestPlatform.TestFramework, Version=14.0.0.0,
Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a'

当我删除对 Microsoft.VisualStudio.QualityTools.UnitTestFramework 的引用时,它会在 IDE 中编译并运行,但不能从命令行运行。测试已运行,但由于抛出异常而失败。

我们真的很想使用 mstest v2 中的新东西,例如 [DataTestMethod],但我们不能让构建在构建服务器上失败。

有什么解决办法吗?这不仅仅是关于[ExpectedException]?其他属性,例如 [AssemblyInitialize] 似乎也被忽略了?

最佳答案

请使用 vstest.console.exe 运行在 MSTest v2 中编写的单元测试。

mstest.exe 仅支持 mstest v1 测试。

关于c# - 从命令行运行时 mstest v2 忽略 ExpectedException,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43091857/

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