如何将测试添加到现有的Typescript项目中,并使其显示在Test Explorer中?

瑞安的浸

我一直在玩尚未编写测试的Typescript项目。提交添加测试

我尝试了两种添加以Typescript编写的测试的不同方法。

  1. launch.json
  2. package.json

这两种方法目前都可以使用,并且可以通过正常的任务启动/调试来进行调试。

但是,我尝试了2种不同的VSCode扩展,以便为测试浏览器添加支持以运行这些测试,获得更好的GUI和自动反馈,可视化覆盖范围等。

Mocha-SidebarMocha测试浏览器

他们都没有拿起我使用默认配置编写的测试。他们两个都有关于如何设置以Typescript编写的测试的稀疏文档

在网上找到的所有博客文章,目前似乎与从命令行/任务启动进行的测试有关。

如何配置Mocha-Sidebar或Mocha-Test-Explorer或某些其他Test Explorer Adapter以便与该提交中的测试一起使用。

并且有可能不将进一步的配置文件提交到git存储库,而是让某人分叉该项目并能够运行测试。

例如BDD样式,位于测试文件夹中,其名称类似于test/hello-world.test.ts用Typescript编写的名称,并具有完全调试支持。

迈克·帕特里克

调用摩卡

当你调用mocha通过命令行,的package.json,或launch.json,您提供的摩卡与两个重要信息:

  • 指定测试文件位置的全局模式。
  • 一个--require标志,指定要加载的任何其他模块。

当使用一个或两个提到的VSCode扩展时,需要为这两个关键信息提供扩展。


配置扩展

这两个扩展有很多重叠,因此我建议使用其中一个。我个人比较喜欢Mocha Test Explorer。我发现Mocha侧边栏在运行较大的测试套件时过慢。无论如何,它们的配置方式都非常相似:

摩卡浏览器

告诉它测试在哪里,并ts-node用于即时编译。这些设置在settings.json用户级别或项目级别进入。

"mochaExplorer.files": "test/**/*.test.ts",
"mochaExplorer.require": [
    "ts-node/register",
],

摩卡边栏

用稍有不同的话告诉它同一件事:

"mocha.requires": [
    "ts-node/register",
],
"mocha.files.glob": "test/**/*.test.ts"

覆盖可视化

为了在VSCode中可视化coverage数据,您可以尝试诸如coverage- gutters之类的方法我发现您提到的两个扩展都不对实际查看我的覆盖率数据有用。


在哪里应用这些设置?

为了确保新加入该项目的开发人员可以“扎根”,我喜欢将这种配置检入到项目中,例如.vscode/settings.json

项目之间的通配模式通常会有所不同,给定项目所需的模块也会有所不同--require因此,对于我来说,这种配置与项目一起存在是很有意义


工作实例

我克隆了您的项目,并将以上配置添加到.vscode/settings.json

VSCode屏幕截图,描述了在Typescript摩卡测试中暂停的settings.json和调试器。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

如何将熊猫数据添加到现有的csv文件中?

如何将测试用例添加到使用API从Java到TestRail的现有测试中?

如何使用Golang将文件添加到现有的zip文件中

在Xcode 7中将单元和UI测试添加到现有项目

如何将Git版本控制(Bitbucket)添加到现有的源代码文件夹中?

如何将列表项添加到现有的无序列表中?

如何将Intellij 14中的模块添加到现有项目

如何将Github中的代码添加到Codepen项目中?

如何使用python将列添加到现有的Excel文件中?

如何将新的对等方添加到现有的Hyperledger Fabric网络中?

如何使用字典将新字典添加到现有的json文件中?

如何将可追踪性添加到现有的Devise设置中?

如何将Android应用程序添加到iOS应用程序中已在使用的现有Firebase项目中?

如何将git中的软件包添加到我的Meteor项目中

如何将列添加到现有的填充数据框中

如何将postgresql添加到现有的dockerfile中?

如何将C#方法添加到现有的大型wix脚本中

如何将图像添加到Xamarin iOS项目并使其在Interface Builder中可用?

如何将NullableBooleanField添加到现有的Django数据库中?

如何将二进制文件添加到现有的PPA包中

如何将一个项目添加到现有车把模板的列表中?

如何使用C#将Datagridview添加到现有的Excel文件中

如何自动将外键添加到现有的Rails数据库中?

如何将新的jar文件添加到服务器中现有的已部署jar

如何将随机,连续视频自动播放添加到现有的onClick视频事件中?

如何通过php脚本将项目添加到现有的json文件中

如何启用群组支持,以及如何将Skype bot添加到现有的Skype群组对话中

如何将表头添加到现有的jasper表组件中?

如何将 React 添加到现有的 Electron 应用程序中?