2017-02-12 15 views
0

Я запускаю тесты Жасмина в среде SystemJS + Typcript (в основном a plunk, который должен быть испытательной установкой Angular 2).Жасмин асинхронная загрузка в SystemJS + среда машинописного текста

Жасмин намеренно используется как глобальная библиотека, а не через TypeScript import.

Это приводит к

Нет спецификации найдены

Там нет ошибок в консоли, спецификации просто не работают:

main.ts

describe('test',() => { 
    it('test',() => { 
    console.log('test'); 
    expect(1).toBe(1); 
    }); 
}); 

Я уверен, что это связано с тем, o тот факт, что main.ts загружается асинхронно с SystemJS, поэтому процедуру загрузки Jasmine следует дополнительно активировать, чтобы заставить ее выбрать спецификации.

В руководстве описано, что такое default boot configuration in Jasmine, но это не объясняет, как его можно загружать вручную.

Каков способ запуска тестов с помощью SystemJS и глобального Jasmine в этом случае?

ответ

1

Причина в том, что ваши спецификации загружаются после того, как jasmine выполнил попытки их поиска и выполнения.

Чтобы преодолеть эту проблему, вы можете позвонить window.onload снова после того, как ваши данные будут загружены system.js:

<script> 
    System.import('app').then(window.onload).catch(console.error.bind(console)); 
</script> 
+0

Спасибо. Вызов обработчика событий напрямую выглядит как хак, но я не вижу, как [переменная htmlReporter] (https://github.com/jasmine/jasmine/blob/v2.5.2/lib/jasmine-core/boot.js#L140) может быть достигнуто иначе. – estus