【问题标题】:Unit tests pass when run from Visual Studio 2017 Test Explorer but fails with “dotnet test” - Is there any difference between these 2 - C#, .NetCore从 Visual Studio 2017 测试资源管理器运行时单元测试通过但因“dotnet 测试”而失败 - 这 2 - C#、.NetCore 之间有什么区别
【发布时间】:2020-11-21 03:53:42
【问题描述】:

我尝试使用 VS 2017 运行单元测试用例,效果很好,但命令行参数“dotnet test”失败

Unit tests pass with "dotnet test" but fail when run from Visual Studio 2017 Test Explorer

这个请求对我来说是完全相反的场景

错误信息: System.TypeInitializationException :“Application.UnitTesting.Mock.MockInsightIPedsRepository”的类型初始化程序引发了异常。 ----> Newtonsoft.Json.JsonReaderException:解析数字时遇到意外字符:。路径 '',第 1 行,第 2 位置。

--JsonReaderException 在 //Src/Newtonsoft.Json/JsonTextReader.cs:line 1398 中的 Newtonsoft.Json.JsonTextReader.ReadNumberCharIntoBuffer(Char currentChar, Int32 charPos) 在//Src/Newtonsoft.Json/JsonTextReader.cs:line 1350 中的 Newtonsoft.Json.JsonTextReader.ReadNumberIntoBuffer() 在 //Src/Newtonsoft.Json/JsonTextReader.cs:line 1927 中的 Newtonsoft.Json.JsonTextReader.ParseNumber(ReadType readType) 在//Src/Newtonsoft.Json/JsonTextReader.cs:line 1772 中的 Newtonsoft.Json.JsonTextReader.ParseValue() 在 Newtonsoft.Json.JsonReader.ReadForType(JsonContract contract, Boolean hasConverter) in //Src/Newtonsoft.Json/JsonReader.cs:line 1195 在//Src/Newtonsoft.Json/Serialization/JsonSerializerInternalReader.cs:line 149 中的 Newtonsoft.Json.Serialization.JsonSerializerInternalReader.Deserialize(JsonReader reader, Type objectType, Boolean checkAdditionalContent) 在 Newtonsoft.Json.JsonSerializer.DeserializeInternal(JsonReader reader, Type objectType) in //Src/Newtonsoft.Json/JsonSerializer.cs:line 907 在 Newtonsoft.Json.JsonConvert.DeserializeObject(String value, Type type, JsonSerializerSettings settings) in //Src/Newtonsoft.Json/JsonConvert.cs:line 828 在 Application.UnitTesting.Mock.MockInsightIPedsRepository..cctor()

“Dotnet 测试”命令应该会成功运行。

有人可以建议我解决此问题的替代方法吗?

【问题讨论】:

  • 两种方式运行方式不同。如果你不能提供一个样本来重现它,那就没有简单的答案了。

标签: .net-core nunit-3.0


【解决方案1】:

我在 jenkins 和 Visual Studio 2019 上运行测试时遇到了类似的问题。 在 jenkins 上失败,但在 vs2019 上测试有效。在 Windows 10 cmd dotnet 上测试 works

在 WSL Ubuntu 18.04 上运行等同于 Jenkins。 sudo dotnet test --filter "FullyQualifiedName~myTest" 有效。 sudo dotnet test 失败。

【讨论】:

    猜你喜欢
    • 2017-07-29
    • 1970-01-01
    • 2019-02-01
    • 1970-01-01
    • 2018-05-03
    • 1970-01-01
    • 2017-10-12
    • 2021-08-01
    • 1970-01-01
    相关资源
    最近更新 更多