问题标签 [vows]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
javascript - 在誓言文件中使用 require.config
我正在尝试像在 index.html 文档中设置的那样设置 require ,这样就不会有任何问题......出于某种原因,vowsjs 抱怨 require.config ......
也许它使用的是旧的 requirejs 版本?誓言 0.7.0
javascript - 如何为异步递归操作编写 vows js bdd 测试
代码.js
测试.js
在 node.js 上运行
我得到未触发的错误回调。
如果我能够放置这个脚本,我的理解是在我的函数返回之前:
callback(computeValue);
这应该可以工作恕我直言。如果我错了,请纠正我。但是,我不明白我可以在哪里插入这个。谢谢你的时间!
node.js - 我怎样才能让誓言等待 60 秒才能发生回调
我编写了一些连接到 FTP 服务器的代码并列出了一个很长的目录。可能需要 40 多秒才能得到响应。
我已经编写了一些代码来开始测试它,但我得到 Errored >> 回调未触发。
有没有办法指示 Vows 或 Node 稍微冷静一下,然后等待回调触发,比如说,直到某个可配置的时间量?
这是我的誓言代码:vows.describe('FTP Downloader Suite').addBatch({ 'FTP Downloader' : { topic: function() { var promise = new(events.EventEmitter);
谢谢!
sails.js - 使用 Vowsjs 的 Sailsjs 水线模型的 TDD
我的问题是尝试对 Waterline 模型进行 TDD。我提供的测试只是构建我的套件的样板。然而,它们提出了有效的问题。主要问题是我需要 Vows.js 测试中的模型。在测试范围内定义了模型,但它没有从 Waterline 包继承的任何属性。例如,这里是“EducationLevel”的一些模型代码:
这里有一些试验测试:
当我运行测试时,第一个断言通过了,但第二个没有:
这表明测试只知道 EducationLevel 定义中明确声明的内容。定义了“迁移”属性是因为我在代码中明确定义了它。它不知道 Waterline 方法“创建”。我怎样才能以使传统 TDD 实用的方式来解决这个问题?
node.js - 如何调试挂起的 api-easy(或 vows)测试?
我正在使用api-easy来实现 REST api 的端到端测试。该库本身非常好,但调试失败的测试比我预期的要难,但也许我没有使用正确的方法。
我遇到了这个问题:测试向服务器发送了一个“GET”,由于内存不足,该服务器当前无响应。该请求永远被阻止,但我在输出中看不到它,因为只打印成功或失败的测试。
是否可以将所有请求转储到标准输出?超时选项还可以帮助中止阻塞测试(并使它们失败)。
我目前的方法是修补api-easy.js
文件以将请求转储到控制台:
输出包含标头、uri 和方法:
这不是一个很好的解决方案,因为我正在修补node_modules
目录的内容。
Api-easy 内部使用vows来控制其数据流。我还使用誓言(直接或使用 grunt-vows)运行测试。我已经启用了详细模式 ( vows -v --spec
),但不足以分析阻塞任务。我只能看到成功或失败的测试。
javascript - V8 延迟生成堆栈跟踪似乎导致 vows 库中的无限循环
我花了一些时间在 NodeJS 测试套件中调试一个奇怪的无限循环问题。它只在极少数情况下发生,但我可以在附加到 chrome 调试器时重现它。
我认为这与 V8 对异常堆栈跟踪的处理以及vows 库对对象所做的扩展有关AssertionError
(vows 添加了一个toString
方法)。我也有可能会误会,所以想问问我对V8实现的理解是否正确。
这是重现错误的最小示例:
现在程序以无限循环结束:当在第 83 行的正则表达式中访问toString
时,该方法(由 vows 库添加)被一次又一次地调用。this.stack
当我this
在调试器中检查时,它显示它是 anAssertionError
但它的stack
属性是undefined
. 但是,当我将鼠标悬停在它上面时,它会显示实际的堆栈跟踪。
我认为这种现象是由 V8 的惰性优化引起的。它仅按需计算堆栈跟踪。这样做,它干扰了toString
誓言的附加方法。该toString
方法再次访问堆栈跟踪 ( this.stack
),因此循环继续。
这个结论正确吗?如果是这样,有没有办法修补誓言代码,所以它可以与 V8 一起使用(或者我至少可以将它报告为誓言项目中的错误)?
我在 Ubuntu 下使用节点 v0.10.28。
更新:没有誓言的简化示例
这是一个简化版本。它不再依赖于誓言,而是我只复制了其toString
扩展的相关部分:
在调试模式下,递归发生在if
语句中。
更新:使用 ReferenceError 的更简单的版本
(我还创建了一个jsfiddle示例,但我无法在那里重现无限循环,只能使用节点。)
unit-testing - 在为 grunt 插件编写一些测试时,如何动态更改 grunt.tasks(...) 使用的配置
我写了一个 grunt 插件。在我用誓言编写的测试中,我想在调用之前更改我的 gruntfile 中定义的一些配置对象
目标是使用不同的配置多次执行我在 gruntfile 中定义的一些任务。
我不能使用经典的 nodeunit 方法,因为我要更改的配置不是我的任务的配置。另外,我在 nodeunit 启动 grunt 任务时遇到了一些问题。
我有这样的事情:
似乎没有真正的解决方案可以从 API 中驱动 grunt,因为它是一个命令行工具。尽管如此,还是有两种 API 方法可以提供帮助:grunt.util.spawn 和 grunt.tasks
两者似乎都是在调用时读取 gruntfile 的黑匣子。
如果我尝试第一次调用 grunt.tasks() 来预加载配置,我可以更改我的对象,但第二次调用 grunt.tasks() 似乎完全重新加载了 gruntfile 并且不使用以前的配置。
有人对实现该目标的这种或其他方式有一些见解吗?
谢谢。
node.js - 使用 Nodejs Vows (BDD) 测试 Bluebird Promise
我在如何使用 Vows 为我的 Promise-returning API 正确构建测试时遇到问题,例如
我的誓言永不落空。这是我第一次尝试使用 vows 来测试 Promise。希望熟悉这方面的人伸出援助之手。
提前谢谢你。
恩里克
node.js - Output data from Vows test
I have a test file like below:
Somewhere this crashes, and I want to output some data. I tried to do console.log
and process.stdout.write(...)
. Both don't work as I expected.
I run the test using npm test
, having vows --spec --isolate
in my package.json
file.
So, how can I output data when using Vows tests?
node.js - 在节点中重用 MongoDB 连接
这是我得到的错误:[Error: db object already connecting, open cannot be called multiple times]
。我在这个誓言测试中有一个全局 mongo 对象。
当我第二次尝试打开它时,我得到了这个错误。
所以即使我db.close()
第一次使用它似乎也没有关闭。是否有另一种方法可以重新使用连接?