我们刚刚遇到了一个yeoman-generator测试的问题,当它们在独立运行时通过,但在与其他测试并行运行时失败。
具体地说,我们调用require('yeoman-generator').test.run()来运行生成器,然后使用require('yeoman-generator').assert.file检查是否生成了正确的文件,这就是documentation所说的。但是,assert有时会失败,因为文件不存在。
test.run()和assert.file之间的交互是如何工作的?这些文件写在哪里?全局变量/临时文件是否总是相同的,因此可以被同时运行的其他测试覆盖?
这是the test,failing build的一个例子。
detailed discussion有一个github的问题,这里讨论了在独立运行时测试如何suddenly started passing。
我们使用的是并行运行测试的Jest testing framework。
发布于 2015-09-24 08:28:21
看起来约曼测试不能并行运行。
require('yeoman-generator').test.run()确实创建了一个临时目录,但随后将当前工作目录更改为该目录。这会干扰也依赖于CWD的其他测试,因此Yeoman测试不能与其他测试并行运行。
run-context.js中的相关注释和helpers.js中的process.chdir。
https://stackoverflow.com/questions/32751180
复制相似问题