Reactjs Visual Studio 2019测试资源管理器中的Jest单元测试
我使用Reactjs Visual Studio 2019测试资源管理器中的Jest单元测试,reactjs,visual-studio,unit-testing,asp.net-core,jestjs,Reactjs,Visual Studio,Unit Testing,Asp.net Core,Jestjs,我使用dotnetnewreact创建了一个新的ASP.NET Core React应用程序。然后我添加了一些Jest单元测试,当我在命令行上运行npm test时,这些测试运行得很好 我希望能够使用TestExplorer窗口或ReSharper从VisualStudio2019运行测试 首先,似乎ReSharper只支持Jasmine而不支持Jest(,) 因此,我尝试使用测试资源管理器,如下所示。它支持玩笑。但是,ASP.NET Core的React模板不是node.js项目,因此测试框架
dotnetnewreact
创建了一个新的ASP.NET Core React应用程序。然后我添加了一些Jest单元测试,当我在命令行上运行npm test
时,这些测试运行得很好
我希望能够使用TestExplorer窗口或ReSharper从VisualStudio2019运行测试
首先,似乎ReSharper只支持Jasmine而不支持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\NodeJSools\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 executor。我可以在.csproj文件中添加一些东西使其工作吗?这就是我使
.njsproj
工作的原因。我希望.csproj
也能正常工作。首先,使用TypeScript
创建一个新的Blank Node.js控制台应用程序。使用JavaScript
进行测试,效果良好
创建一个名为tests的文件夹,并添加一个JavaScript Jest UnitTest文件
:
找不到“jest”包。“jest”必须安装在项目中
在当地。通过解决方案使用npm管理器在本地安装“jest”
explorer或通过Node.js使用“.npm install jest--save dev”
交互式窗口。找不到“jest编辑器支持”包。
“jest编辑器支持”必须本地安装在项目中。
通过使用npm管理器在本地安装“jest编辑器支持”
解决方案资源管理器或支持“.npm安装jest编辑器”
--通过Node.js交互窗口保存“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"
安装了具有依赖项类型的jest
和jest编辑器支持
执行此操作后,可以运行测试:
测试现在也将显示在测试资源管理器中:
然后将UnitTest1.js
重命名为UnitTest1.ts
。您应该看到以下错误:
安装@types/jest
作为开发人员依赖项,它应该可以工作:
我不必指定这一点,但如果出现故障,则检查项目属性并设置JavaScript单元测试值
同时检查测试文件的属性,如果通过GUI添加,默认情况下这些值应该是正确的
你有没有找到解决办法?没有,我什么都没有。我现在只使用命令行。遗憾的是,这不适用于csproj,因为它假定Javascript的根目录是项目的根目录,即使我更改测试适配器的源代码以查看正确的位置,我也会遇到一大堆失败的情况。