Meteor version 1.7.0.5
Using meteortesting:mocha
我有一个非常简单的流星反应应用程序。我在imports/startup/simple-schema.tests.js
describe('Todos_item', function () {
console.log('Todo');
});
我正在运行npm run test-app
,因此应将其记录在控制台中,但该文件实际上未运行。但是,当我将此片段添加到我的tests/main.js
Todo
时,已登录控制台。所以我错过了什么吗?
我的目录树
package.json
{
"name": "meteor-bootstrap",
"private": true,
"scripts": {
"start": "meteor run",
"test": "meteor test --once --driver-package meteortesting:mocha",
"test-app": "TEST_WATCH=1 meteor test --full-app --driver-package meteortesting:mocha",
"visualize": "meteor --production --extra-packages bundle-visualizer"
},
"dependencies": {
"@babel/runtime": "7.0.0-beta.55",
"meteor-node-stubs": "^0.4.1",
"react": "^16.4.2",
"react-dom": "^16.4.2",
"react-router-dom": "^4.3.1",
"simpl-schema": "^1.5.3"
},
"meteor": {
"mainModule": {
"client": "client/main.js",
"server": "server/main.js"
},
"testModule": "tests/main.js"
},
"engines": {
"node": "8.11.4"
}
}
任何帮助将不胜感激。预先感谢。
答案 0 :(得分:3)
从1.7开始,新的Meteor应用程序默认已将急切加载关闭(这会引起您的问题)
此行为由meteor
中的package.json
部分控制。
要恢复测试的紧急加载行为,请从testModule
中删除package.json
键/值对。它应该看起来像这样:
"meteor": {
"mainModule": {
"client": "client/main.js",
"server": "server/main.js"
}
},
如果要恢复所有文件的1.7版之前的行为,只需从meteor
删除整个package.json
部分
如果您不想使用紧急加载,则需要从tests/main.js
文件中导入所有测试文件
答案 1 :(得分:0)
使用@Fred答案导入测试文件时还必须添加一件事,use require not import
,尽管我不确定这是由于我的节点版本还是我正在使用我的节点版本v6.11.1
>