Я использую gulp/gulp-jasmine/angular для запуска моих модульных тестов. Тем не менее, я сталкиваюсь следующее сообщение об ошибке при выполнении своей цели Глотка:gulp-jasmine Окно не определено Ошибка
C:\Projects\website2>gulp test
[01:53:10] Using gulpfile C:\Projects\website2\gulpfile.js
[01:53:10] Starting 'test'...
[01:53:11] Version: webpack 1.4.13
Asset Size Chunks Chunk Names
test.bundle.js 1051728 0 [emitted] test
F
Failures:
1) Exception loading: C:\Projects\website2\scripts\dist\test.bundle.js Error
1.1) ReferenceError: window is not defined
1 spec, 1 failure
Finished in 0.015 seconds
[01:53:11] 'test' errored after 916 ms
[01:53:11] Error in plugin 'gulp-jasmine'
Message:
Tests failed
Я считаю, что проглатывать-жасмин использует PhantomJS (не окно браузера не срабатывает). Может кто-нибудь помочь мне с тем, что я делаю неправильно? Есть ли настройки конфигурации, которые мне не хватает?
Вот мой gulpfile.js:
var gulp = require('gulp');
var path = require('path');
var webpack = require('gulp-webpack');
var webpackConfig = require('./webpack.config');
var testWebpackConfig = require('./test.webpack.config');
var jasmine = require('gulp-jasmine');
gulp.task('default', ['build'], function() {
});
gulp.task('build', function() {
return gulp.src(['scripts/app/**/*.js', '!scripts/app/**/*.tests.js'])
.pipe(webpack(webpackConfig))
.pipe(gulp.dest('scripts/dist'));
});
gulp.task('test', function() {
return gulp.src(['scripts/app/**/*.tests.js'])
.pipe(webpack(testWebpackConfig))
.pipe(gulp.dest('scripts/dist'))
.pipe(jasmine());
});
Любой прогресс в этом вопросе? У меня такая же проблема. –
Я подозреваю, что ошибка «window not defined» связана с Angular, требующей контекста браузера и рабочей DOM для правильной загрузки. Жасмин - это всего лишь тестовая структура. Я думаю, вам нужен браузер, который предоставляет API DOM (то есть окно). Я обнаружил, что PhantomJS хорошо работает для этого. См. Мой ответ ниже. – pixelbits