Комментарии к записи Тестирование AngularJS-приложения при помощи Testacular (karma) отключены
Table of Contents
Ниже опишу проблемы, которые возникли при настройке среды тестирования, и их решения.
TypeError: jasmine.getEnv().currentSpec is null
Ошибка состоит в том, что версия используемого в проекте AngularJS не совпадает с версией установленного через npm пакета karma.
Поэтому в конфиге нужно заменить значение переменной files:
В итоге все приходит к этой проблеме.
Она происходит от того, что человек не разобрался, что он хочет: e2e-тесты или unit-тесты.
Вот тест для примера, который также вызывает такую ошибку:
Go
1
2
3
4
5
6
describe('Touch App:',function(){
it('should redirect index.html to index.html#/top',function(){
browser().navigateTo(urlTo());
expect(browser().location().url()).toBe('/top');
});
});
Дело в том, что e2e-тесты предназначены для грубого тестирования всего приложения (доступность страниц по ссылкам, проверке контента страниц по ссылкам).
Unit-тесты .. ну в общем это unit-тесты.
Так вот. Jasmine нужно грузить только для unit-тестов, angular-scenario — только для e2e-тестов. Друг с другом они несовместимы, и поэтому нужно иметь два конфига: один для unit-тестов, другой — для e2e-тестов.
Вот примерный конфиг для e2e-тестов:
Go
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
// end-to-end tests config
// Karma configuration
// Generated on Tue May 14 2013 16:32:16 GMT+0400 (MSK)
// base path, that will be used to resolve files and exclude
basePath='../';
// list of files / patterns to load in the browser
files=[
ANGULAR_SCENARIO,
ANGULAR_SCENARIO_ADAPTER,
'./e2e/*Spec.js'
];
// list of files to exclude
exclude=[
];
// test results reporter to use
// possible values: 'dots', 'progress', 'junit'
reporters=['progress'];
// web server port
port=9876;
// cli runner port
runnerPort=9100;
// enable / disable colors in the output (reporters and logs)