当 运行 个较小的套件单独工作时,为什么全套 Jasmine 测试会失败?
Why would a full suite of Jasmine tests fail when running smaller suites individually works?
我有一个带有以下套件 glob 模式的量角器配置文件:
suites: {
all: ['**/*.spec.js'],
ui: ['ui/**/*.spec.js'],
api: ['api/**/*.spec.js']
},
如果我在 Mac、运行 npm run protractor
(默认套件 all
)上,测试 运行 没问题。
如果团队中有另一个人,就Mac,运行s npm run protractor
,测试运行 fine.
如果团队中的其他人在 Windows 主机上的 Ubuntu 虚拟机上:
- 运行s
npm run protractor
,测试死了。具体来说,onPrepare
的第一行会引发错误。
- 运行s
npm run protractor --suite=ui
,测试 运行 很好
- 运行s
npm run protractor --suite=api
,测试 运行 很好
- 运行s
npm run protractor --suite=ui,api
, onPrepare
再次出错
此时,我想知道问题是否出在 Jasmine 最初遍历 spec 文件时 VM 的 nodejs 资源。完整套件中有 15k+ it
s。 onPrepare
在套件外工作正常,这一切让我认为实际抛出的错误是一个红色鲱鱼(这是一个带有 mysql
包的数据库调用引发了连接超时)。
我可以猜测这与 OS 读取您的 **
路径的不同有关。我建议使用 path
库来解决这个问题。确保安装它然后
let path = require('path');
let specs = path.resolve('**/*.spec.js'); // it should be /your/working/direction/**/*.spec.js
console.log(specs) // to confirm your assumption
exports.config = {
suites: {
all: [specs],
ui: ['ui/**/*.spec.js'],
api: ['api/**/*.spec.js']
},
}
但可能还有其他原因导致了问题
我有一个带有以下套件 glob 模式的量角器配置文件:
suites: {
all: ['**/*.spec.js'],
ui: ['ui/**/*.spec.js'],
api: ['api/**/*.spec.js']
},
如果我在 Mac、运行 npm run protractor
(默认套件 all
)上,测试 运行 没问题。
如果团队中有另一个人,就Mac,运行s npm run protractor
,测试运行 fine.
如果团队中的其他人在 Windows 主机上的 Ubuntu 虚拟机上:
- 运行s
npm run protractor
,测试死了。具体来说,onPrepare
的第一行会引发错误。 - 运行s
npm run protractor --suite=ui
,测试 运行 很好 - 运行s
npm run protractor --suite=api
,测试 运行 很好 - 运行s
npm run protractor --suite=ui,api
,onPrepare
再次出错
此时,我想知道问题是否出在 Jasmine 最初遍历 spec 文件时 VM 的 nodejs 资源。完整套件中有 15k+ it
s。 onPrepare
在套件外工作正常,这一切让我认为实际抛出的错误是一个红色鲱鱼(这是一个带有 mysql
包的数据库调用引发了连接超时)。
我可以猜测这与 OS 读取您的 **
路径的不同有关。我建议使用 path
库来解决这个问题。确保安装它然后
let path = require('path');
let specs = path.resolve('**/*.spec.js'); // it should be /your/working/direction/**/*.spec.js
console.log(specs) // to confirm your assumption
exports.config = {
suites: {
all: [specs],
ui: ['ui/**/*.spec.js'],
api: ['api/**/*.spec.js']
},
}
但可能还有其他原因导致了问题