等待加载模块以执行它包含的测试
Wait for a module to be loaded to execute the tests it contains
我的单元测试包含在使用 SystemJS 从 HTML 页面加载的模块中。
<script src="node_modules/systemjs/dist/system.src.js"></script>
<script src="node_modules/rxjs/bundles/Rx.js"></script>
<script src="node_modules/jasmine-core/lib/jasmine-core/jasmine.js"></script>
<script src="node_modules/jasmine-core/lib/jasmine-core/jasmine-html.js"></script>
<script src="node_modules/jasmine-core/lib/jasmine-core/boot.js"></script>
<script>
System.config({
defaultJSExtensions: true,
map: {
"angular2": 'http://localhost:8000/angular2',
"rxjs": 'node_modules/rxjs'
},
packages: {
angular2: {
defaultExtension: 'js',
}
}
});
System.import('angular2/test/http/backends/xhr_backend_spec')
.then((src) => {
src.main();
});
</script>
我的页面不显示任何测试,而我的 main
方法包含一个测试套件:
export function main() {
console.log('in main');
describe('XHRBackend', () => {
(...)
});
}
我放置了一些痕迹,并检查是否调用了 main
函数和 describe 函数中定义的回调。但是测试本身并没有在 describe
回调中执行。
我想我需要等待模块在 运行 Jasmine 之前加载,但我不知道如何配置它。
感谢您的帮助!
告诉 Jasmine 运行 使用 导入的测试。然后 (window.onload)
<script>
System.config({
(...)
System.import('angular2/test/http/backends/xhr_backend_spec')
// wait for all imports to load ...
// then re-execute `window.onload` which
// triggers the Jasmine test-runner start
.then(window.onload)
(...)
</script>
我阅读了如何 运行 angular.io
上的 Jasmine 测试
https://angular.io/docs/ts/latest/testing/first-app-tests.html
我的单元测试包含在使用 SystemJS 从 HTML 页面加载的模块中。
<script src="node_modules/systemjs/dist/system.src.js"></script>
<script src="node_modules/rxjs/bundles/Rx.js"></script>
<script src="node_modules/jasmine-core/lib/jasmine-core/jasmine.js"></script>
<script src="node_modules/jasmine-core/lib/jasmine-core/jasmine-html.js"></script>
<script src="node_modules/jasmine-core/lib/jasmine-core/boot.js"></script>
<script>
System.config({
defaultJSExtensions: true,
map: {
"angular2": 'http://localhost:8000/angular2',
"rxjs": 'node_modules/rxjs'
},
packages: {
angular2: {
defaultExtension: 'js',
}
}
});
System.import('angular2/test/http/backends/xhr_backend_spec')
.then((src) => {
src.main();
});
</script>
我的页面不显示任何测试,而我的 main
方法包含一个测试套件:
export function main() {
console.log('in main');
describe('XHRBackend', () => {
(...)
});
}
我放置了一些痕迹,并检查是否调用了 main
函数和 describe 函数中定义的回调。但是测试本身并没有在 describe
回调中执行。
我想我需要等待模块在 运行 Jasmine 之前加载,但我不知道如何配置它。
感谢您的帮助!
告诉 Jasmine 运行 使用 导入的测试。然后 (window.onload)
<script>
System.config({
(...)
System.import('angular2/test/http/backends/xhr_backend_spec')
// wait for all imports to load ...
// then re-execute `window.onload` which
// triggers the Jasmine test-runner start
.then(window.onload)
(...)
</script>
我阅读了如何 运行 angular.io
上的 Jasmine 测试https://angular.io/docs/ts/latest/testing/first-app-tests.html