2015-12-08 4 views
2

Я пишу тесты с мокко и машинопись ... вот быстрый пример:Импорт «глобальные» модули с машинопись

import {assert} from 'chai'; 
import Greeting from '../../../src/component/greeting/greeting'; 

describe('Greeting component', function() { 
    it('should greet correctly', function() { 
     let greeting = new Greeting(); 
     assert(greeting.greeting === 'Hello World', 'should express the correct greeting'); 
    }); 
}); 

Я могу видеть эти компилируется правильно. Я выводил их как модули common-js и использовал system-js в качестве загрузчика в браузере.

System.import('component/greeting/greetingSpec.js') 
    .catch(console.log.bind(console)) 
    .then(function() { 
     mocha.run(); 
    }) 

Я хотел бы создать файл, который содержит список всех файлов «спецификация»:

import * as greeting from './greeting/greetingSpec'; 
import * as foo from './greeting/fooSpec'; 

Однако машинопись компилятор может видеть, что этот импорт не используется, поэтому не включает их в выводе JS.

Как я могу определить одну «точку входа» в мои тесты, которую я могу загрузить через system-js?

ответ

1

Попробуйте использовать побочный эффект только для import:

import './greeting/greetingSpec'; 
import './greeting/fooSpec'; 

Это не будет опущен. См. this discussion для получения дополнительной информации.

+0

Perfect - спасибо :-) – ColinE

0

Ваш код

import * as greeting from './greeting/greetingSpec'; 
import * as foo from './greeting/fooSpec'; 

Однако машинописи компилятор может видеть, что этот импорт не используются, поэтому не включает их в выходной JS.

Это функция, поддерживающая, например, отложенная загрузка: https://basarat.gitbooks.io/typescript/content/docs/project/external-modules.html

Обход:

import * as greeting from './greeting/greetingSpec'; 
import * as foo from './greeting/fooSpec'; 
// use the imports in a dummy fashion to enforce that they get loaded 
let _greeting = greeting; 
let _foo = foo; 

I do this all the time here :-)

+0

Спасибо, что работает, однако [принятый ответ] (http://stackoverflow.com/a/34189916/249933) показывает более элегантный подход. – ColinE

Смежные вопросы