在Visual Studio 2022中运行MST测试

hpcdzsge  于 12个月前  发布在  其他
关注(0)|答案(2)|浏览(212)

Visual Studio 2022 17.6.2
编辑:相关的解决方案完全是桌面。WPF、控制台和类库项目包括在内,但Internet和Web功能不相关。
我有几个单元测试,以前工作得很好。昨天我注意到它们显示在测试资源管理器中,但不会运行。在构建时,测试资源管理器中标记为“X测试”的按钮(其中X是我的解决方案中有多少个项目)将链接到“测试”输出,声称每个项目都没有找到测试:

No test is available in [].dll. Make sure that test discoverer & executors are registered and platform & framework version settings are appropriate and try again.

字符串
在测试>选项中,我取消选中“从C#和Visual Basic .NET源文件中真实的发现测试”。这使得测试停止出现在测试资源管理器中。测试资源管理器仍然显示警告计数,但我认为此时它变为1。“测试”输出仍然为每个项目列出相同的消息。
根据this answer,我重新安装了3个相关的NuGet包。这使得警告计数下降到0,但“测试”输出仍然显示每个项目的相同消息。我添加了Microsoft.TestPlatform.ObjectModel包,并没有看到它的效果。
我试着在命令行上运行测试:

mstest /testcontainer:"[].dll" /nologo
Loading [].dll...
TestTypes\37e36796-fb51-4610-8d5c-e00ceaa68b9f could not be loaded because the TIP could not be instantiated for the following reason(s): System.IO.FileNotFoundException: Could not load file or assembly 'Microsoft.VisualStudio.QualityTools.Tips.WebLoadTest.Tip, Version=17.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a' or one of its dependencies. The system cannot find the file specified.
File name: 'Microsoft.VisualStudio.QualityTools.Tips.WebLoadTest.Tip, Version=17.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a'
    at System.RuntimeTypeHandle.GetTypeByName(String name, Boolean throwOnError, Boolean ignoreCase, Boolean reflectionOnly, StackCrawlMarkHandle stackMark, IntPtr pPrivHostBinder, Boolean loadTypeFromPartialName, ObjectHandleOnStack type)
    at System.RuntimeTypeHandle.GetTypeByName(String name, Boolean throwOnError, Boolean ignoreCase, Boolean reflectionOnly, StackCrawlMark& stackMark, IntPtr pPrivHostBinder, Boolean loadTypeFromPartialName)
    at System.RuntimeType.GetType(String typeName, Boolean throwOnError, Boolean ignoreCase, Boolean reflectionOnly, StackCrawlMark& stackMark)
    at System.Type.GetType(String typeName, Boolean throwOnError)
    at Microsoft.VisualStudio.TestTools.TestManagement.TipDelayLoader.LoadTip()
WRN: Assembly binding logging is turned OFF.
To enable assembly bind failure logging, set the registry value [HKLM\Software\Microsoft\Fusion!EnableLog] (DWORD) to 1.
Note: There is some performance penalty associated with assembly bind failure logging.
To turn this feature off, remove the registry value [HKLM\Software\Microsoft\Fusion!EnableLog].
Starting execution...
No tests to execute.


这将在事件查看器中生成一条消息:
找不到源VSTTExecution中事件ID 0的说明。本地计算机上未安装引发此事件的组件,或者安装已损坏。您可以在本地计算机上安装或修复该组件。
如果事件源自另一台计算机,则显示信息必须与事件一起保存。
事件包括以下信息:
(mstest,PID 15624,线程1)找不到HKEY_MACHINE\HKEY_MACHINE\QualityTools\TestTypes Key!
消息资源存在,但在消息表中找不到消息
这会给我给予通过/失败的结果:

vstest.console.exe "[].dll"


为什么测试资源管理器找不到测试?事件查看器消息重要吗?还是我应该忽略它?

lb3vh1jj

lb3vh1jj1#

从Visual Studio中安装以下功能:安装>>单个组件。
Web性能和负载测试工具
我使用VS 17.6.3 Enterprise,它解决了这个问题。
根据此VS线程web performance and load testing tool,其仅在Visual Studio Enterprise中可用

dtcbnfnu

dtcbnfnu2#

更新VS到17.7.1解决了这个问题。我应该早点想到的。
如果有人解决了17.6.2中的问题,我将接受这个答案。

相关问题