С помощью конфигурации кармы вы должны зарегистрировать каждый файл, который хотите использовать в своих тестах. Вы можете сделать это, добавив шаблоны в свой массив files
в своей конфигурации.
Шаблон файла выглядит следующим образом:
files: [
{
pattern: 'test/unit/*.js',
watched: true, //watching file modifications for test autorun
included: true, //included as <script src="..."> in the runner html file
served: true //used by tests (the test server should serve it)
}
]
Вы можете использовать синтаксис короткого шаблона:
files: [
'test/unit/*.js'
]
Это означает то же самое, что и предыдущий шаблон.
Если вы не хотите использовать свой файл в своем тесте, включенном как <script src="file.js"></script>
, вы должны использовать included: false
и загрузить файл из своих тестов через AJAX. Имейте в виду, что вы должны использовать для этого относительные URL-адреса, потому что домен тестового сервера всегда может измениться...
Порядок шаблона тоже важен, он использует обратное переопределение:
files: [
{pattern: '*.js', included: true}
{pattern: '*.js', included: false}
]
В этом случае каждый файл js будет включен, поэтому первый шаблон переопределяет второй.
Например, по html-файлам:
настройка кармы:
files: [
{pattern: 'bootstrap.js', included: true}
{pattern: 'x.html', included: false}
]
bootstrap.js:
var xhr = new XMLHttpRequest();
xhr.open('get', '/base/x.html', false);
xhr.send();
console.log(xhr.status, xhr.responseText); //200, '<html content>'
URI всегда имеет префикс /base
, потому что Karma хранит свои собственные файлы index.html
и js на верхнем уровне, поэтому ему нужна подпапка. Если вы хотите узнать, какие URI обслуживаются, вы можете использовать этот код:
var servedUris = Object.keys(window.__karma__.files);
Я написал некоторые основные fs
вещи для поддержки синхронизации, прочитанной Yadda: https://github.com/acuminous/yadda/blob/master/lib/shims/karma-fs.js Возможно, вы сможете переместить его в другой проект, расширить его и использовать fs
вместо AJAX в браузер. По крайней мере, так я бы сделал с Browserify.
person
inf3rno
schedule
17.01.2014