Жасмин бросает "не могу найти переменную: требуется"

У меня есть проект VS2015 TypeScript, переносимый в ECMA5 с использованием модульной системы CommonJS, и юнит-тесты с Jasmine в том же проекте. Некоторые ссылки на код self поэтому мне нужно запустить тесты с jasmineBrowser, чтобы иметь среду, похожую на браузер.

Я пытался запустить тесты с jasmineBrowser.server, но после сообщения "Jasmine server listening" продолжает зависать. Я пытался перейти на jasmineBrowser.headless используя PhantomJS 2, как указано в документации gulp-jasmine-browser, но затем я получаю эту ошибку:

ReferenceError: Невозможно найти переменную: требуется

Для меня не важно, будут ли тесты выполняться с использованием jasmineBrowser.server или же jasmineBrowser.headless, Любое решение работает для меня. Некоторый код вставлен ниже.

Spec файл:

import {MockHub} from "path/to/mockHub";
import {Subject} from "path/to/Subject";

describe("A nice little test", () => {
    let mockHub: MockHub;
    let subject: Subject;    

    jasmine.getEnv().updateInterval = 200;
    jasmine.DEFAULT_TIMEOUT_INTERVAL = 60000;

    beforeEach(function () {
        mockHub = new MockHub();
        subject = new Subject();
    });

    afterEach(function () {
        mockHub.dispose();
    });

    it("should assert that it works", function () {
        let result = -1,
            done = false;

        mockHub.bind(someEvent, () => {
            result = subject.getResult();
            done = true;
        });

        runs(function () {
            setTimeout(() => mockHub.dispatch(someEvent), 2000);
        });

        waitsFor(function () {
            return done;
        });

        runs(function () {
            expect(result).toEqual(0);
        });
    });
});

Гулп файл:

var gulp = require('gulp'),
    jasmine = require('gulp-jasmine'),
    runSequence = require("run-sequence"),
    jasmineBrowser = require('gulp-jasmine-browser');

gulp.task("test", function () {
    gulp.src([
        "tests/**/SubjectSpec.js"
    ])
    .pipe(jasmineBrowser.specRunner({ console: true }))
    .pipe(jasmineBrowser.headless());
    // .pipe(jasmineBrowser.specRunner({ console: true }))
    // .pipe(jasmineBrowser.server({port: 9000}));

});

Файл Subject.js, перенесенный из файла Subject.ts:

import {EventTypes} from "./EventTypes";

class Subject implements ISubject {
    let counter = 0;

    constructor(private hub: IHub) {
        this.hub.bind(EventTypes.all, () => this.counter++);
    }

    public getResult(): number {
        return this.counter;
    }
}

export {Subject};

0 ответов

Другие вопросы по тегам