Visual Studio 2019 测试资源管理器中的 Jest 单元测试

IT技术 reactjs visual-studio unit-testing asp.net-core jestjs
2021-05-08 14:11:30

我使用dotnet new react. 然后我添加了一些 Jest 单元测试,当我npm test在命令行上运行时,它们运行得很好

我希望能够使用测试资源管理器窗口或 ReSharper 从 Visual Studio 2019 运行测试。

首先,ReSharper 似乎只支持 Jasmine 而不是 Jest(ReSharper 文档功能请求)。

所以我尝试使用测试资源管理器,遵循这个官方指南它支持 Jest。但是,ASP.NET Core 的 React 模板不是 node.js 项目,因此测试框架和诸如此类的选项不可用。因此,测试资源管理器找不到任何测试。

然后我尝试使用命令运行测试vstest.console.exe MyProject.csproj /TestAdapterPath:"C:\Program Files (x86)\Microsoft Visual Studio\2019\Professional\Common7\IDE\Extensions\Microsoft\NodeJsTools\TestAdapter"输出给了我一些希望:

Microsoft (R) Test Execution Command Line Tool Version 16.5.0
Copyright (c) Microsoft Corporation.  All rights reserved.

Starting test execution, please wait...

A total of 1 test files matched the specified pattern.
No test is available in MyProject.csproj. Make sure that test 
discoverer & executors are registered and platform & framework version settings are appropriate and 
try again.

测试运行器找到了至少一个测试文件(实际上我有 2 个),但它不知道它应该使用 Jest 执行器。我可以在 .csproj 文件中添加一些东西以使其工作吗?

1个回答

这就是我开始.njsproj工作的方式。我也希望能出个.csproj作品。首先创建一个新Blank Node.js Console ApplicationTypeScript也进行了测试,JavaScript它的工作原理。

在此处输入图片说明

创建一个名为 tests 的文件夹并添加一个JavaScript Jest UnitTest file

在此处输入图片说明

未能找到“jest”包。“jest”必须安装在本地的项目中。使用 npm 管理器通过解决方案资源管理器或通过 Node.js 交互窗口使用“.npm install jest --save-dev”在本地安装“jest”。找不到“jest-editor-support”包。“jest-editor-support”必须安装在本地的项目中。使用 npm 管理器通过解决方案资源管理器在本地安装“jest-editor-support”,或通过 Node.js 交互窗口使用“.npm install jest-editor-support --save-dev”安装。

然后从 VS 2019 的开发人员命令提示符运行以下命令:

vstest.console.exe "C:\Users\Oscar\source\repos\NodejsConsoleApp1\NodejsConsoleApp1\NodejsConsoleApp1.njsproj" "/TestAdapterPath:C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\Common7\IDE\Extensions\Microsoft\NodeJsTools\TestAdapter"

在此处输入图片说明

已安装jestjest-editor-support具有 Dependency type Development

在此处输入图片说明

执行此操作后,可以运行测试:

在此处输入图片说明

测试现在也将显示在测试资源管理器中:

在此处输入图片说明

然后重命名UnitTest1.jsUnitTest1.ts. 您应该看到以下错误:

在此处输入图片说明

安装@types/jest为 dev 依赖项,它应该可以工作:

在此处输入图片说明

我不必指定这一点,但如果出现问题,请检查项目属性并设置 JavaScript 单元测试值。

在此处输入图片说明

还要检查测试文件的属性,如果通过 GUI 添加这些值默认情况下应该是正确的。

在此处输入图片说明