gpt4 book ai didi

node.js - 如何使用不同的 NODE_PATH 运行 NodeJS 单元测试

转载 作者:太空宇宙 更新时间:2023-11-04 02:57:49 25 4
gpt4 key购买 nike

问题

我可以从 Node/Gulp 中运行单元测试吗?这些测试的 NODE_PATH 与从环境继承的 NODE_PATH 不同?

问题

我有一个项目正在基于 Rhino 的应用程序中运行,其中 require 从一组定义的位置加载脚本。

我想对我的组件进行单元测试。为了运行这些测试,我需要能够从 Node 环境调用我的脚本。但最终会出现类似以下的错误:

Error: Cannot find module 'lib/foo/foo.js'

这是因为我的脚本包含 require(foo/foo)...如果 NODE_PATH 包含 lib 就可以了。这里的问题是,我只希望此文件夹存在于单元测试中,而不是用于其他 gulp 任务。

<小时/>

我想我面临的问题是我遇到的所有测试运行程序(例如karma)都是基于浏览器的。所以我的问题可能是:是否有一个运行纯 NodeJS 测试的测试运行器?

最佳答案

我花了几个小时来寻找问题的答案。 Node 是quite hostile当涉及到在运行时操作 NODE_PATH 时。

所以我自己的问题的答案是:不,基于 gulp 的测试不能使用不同的 NODE_PATH 运行,除非这些测试 spawn a new process .

<小时/>

我无法找到能够在不同环境中生成 Node 的方便的测试运行程序。我能够编写自己的代码来在新进程中运行单元测试,但这有太多“粗糙的边缘”。

最后我选择了app-module-path模块以使事情变得简单(我不需要特殊的包装器 shell 脚本)。这并不完全是我想要的,但也非常接近。

关于node.js - 如何使用不同的 NODE_PATH 运行 NodeJS 单元测试,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31829294/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com