运行 用电子而不是节点开玩笑

Run jest with electron instead of node

长话短说,我想 运行 我的玩笑测试(使用 CLI)用 electron 而不是 node。

这在使用本机模块时很重要,因为您需要使用 electron header 构建它们,而开玩笑 运行 它们使用普通节点。 所以我必须为我的应用程序(至少在开发模式下)或我的测试构建我的本机模块,我不能同时工作。

In this thread 他们建议使用 mocha,但我想使用 jest,它更高级并且与 React 交互良好。 请注意,我不想模拟本机模块,因为我编写了集成测试。

我打开了一个关于 zmq github repo 的问题。一种建议的解决方案是 "to target your tests using ELECTRON_RUN_AS_NODE=true electron as your node runtime"。 这是一个很好的解决方案,因为使用 electron 既可以使测试环境更接近执行环境,又可以解决我使用原生模块的具体问题。

我想应用它,但我似乎无法设置 jest CLI 以使用电子而不是节点,而且我不知道从哪里开始。也许我应该 运行 在没有 CLI 的情况下以编程方式开玩笑?但我可能会失去 CLI 的优秀测试过滤功能。

有人解决了吗?

"ELECTRON_RUN_AS_NODE=true ./node_modules/.bin/electron ./node_modules/.bin/jest 工作正常

如果您使用 Windows,那么 Eric Burel 的出色发现可能需要稍微调整一下才能使用环境变量,并调用正确版本的 Jest:

cross-env ELECTRON_RUN_AS_NODE=true ./node_modules/.bin/electron ./node_modules/jest-cli/bin/jest.js

遗憾的是,结果中文本的颜色丢失了。