카르마가 단위 테스트를 실행하지 않음
재스민 유닛 테스트를 실제로 실행하는 데 문제가 있는 것 같습니다.logLevel을 LOG_DEBUG로 설정하여 모든 스크립트가 로드되는지 확인했습니다.제 유닛 테스트는 서비스 테스트 @ https://github.com/angular/angular-seed/blob/master/test/unit/servicesSpec.js 와 동일합니다.
또한 (카르마로 이름이 바뀌기 전에) Testacular를 사용한 적이 있는데 이 문제가 있었던 기억이 없습니다.크롬을 작동시키는 것 같지만, 수동으로 "디버그" 버튼을 눌러야 합니다.이 버튼을 눌러도 테스트가 실행되지 않습니다.
시스템 세부 정보:
- 윈도 7
- 노드 v0.10.4
- 크롬 26.0.14
- 카르마 0.8.5 (경고 3개로 설치됨 - 정밀도 2 손실 및 인라인 함수 v8에 대한 '정의 없음' 1개:영구 v8::지속성::새로 만들기(v8::손잡이)).
내 모듈 코드(Scripts/main.js)는 다음과 같습니다.
angular.module('sb.services', []).value('version', '0.0.1').value('amplify', amplify);
angular.module('sb.directives', []);
angular.module('sb.filters', []);
angular.module('sb.controllers', []).controller('SbController', [
'$scope',
'amplify',
function ($scope, amplify) {
$scope.message = 'Hello World! (amplify exists?=' + !!amplify + ')';
}
]);
angular.module('sb', [
'sb.services',
'sb.directives',
'sb.filters',
'sb.controllers'
]);
제 사양(Test/unit/servicesSpec.js)은 다음과 같습니다.
'use strict';
describe('my services', function () {
beforeEach(module('sb.services'));
describe('version', function () {
it('should return current version', inject(function(version) {
expect(version).toEqual('0.0.1');
}));
});
});
여기 내 카르마.conf.js 파일이 있습니다.
// Karma configuration
// Generated on Mon Apr 15 2013 20:56:23 GMT-0400 (Eastern Daylight Time)
// base path, that will be used to resolve files and exclude
basePath = '';
// list of files / patterns to load in the browser
files = [
JASMINE,
JASMINE_ADAPTER,
'Vendor/angular-1.0.6/angular.js',
'Vendor/angular-1.0.6/angular-*.js',
'Vendor/json2/json2.js',
'Vendor/jquery/jquery-1.8.2.js',
'Vendor/amplify/amplify.js',
'Scripts/main.js',
'Test/unit/*.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)
colors = true;
// level of logging
// possible values: LOG_DISABLE || LOG_ERROR || LOG_WARN || LOG_INFO || LOG_DEBUG
logLevel = LOG_WARN;
// enable / disable watching file and executing tests whenever any file changes
autoWatch = false;
// Start these browsers, currently available:
// - Chrome
// - ChromeCanary
// - Firefox
// - Opera
// - Safari (only Mac)
// - PhantomJS
// - IE (only Windows)
browsers = ['Chrome'];
junitReporter = {
outputFile: 'Test/out/unit.xml',
suite: 'unit'
};
// If browser does not capture in given timeout [ms], kill it
captureTimeout = 60000;
// Continuous Integration mode
// if true, it capture browsers, run tests and exit
singleRun = false;
저도 같은 문제가 있었는데 제가 그 문제를 해결해야 한다는 걸 알게 되었습니다.autoWatch = true
카르마가 테스트를 자동으로 실행하기 전에 말입니다.
또는 karma.conf.js에서 exclude 섹션을 사용할 수 있습니다.
exclude = [
'Vendor/angular-1.0.6/angular-scenario.js'
];
내 마지막 대답은 틀렸습니다(JASMIN 및 JASMIN_ADAPTER 선을 angular.js 선 아래로 이동).이것은 이 특정한 문제를 해결했지만, 다른 문제들을 야기시켰습니다.대신, 제가 이를 수정하기 위해 한 일은 angular-* 대신 angular-mocks 파일만 지정하는 것이었습니다.
JASMINE,
JASMINE_ADAPTER,
'Vendor/angular-1.0.6/angular.js',
'Vendor/angular-1.0.6/angular-mocks.js',
'Vendor/json2/json2.js',
'Vendor/jquery/jquery-1.8.2.js',
'Vendor/amplify/amplify.js',
'Scripts/main.js',
'Test/unit/*.js'
나는 모든것을 다 해보았지만 성공하지 못했습니다.
나의karma.conf.js
requirejs 종속성을 제거했습니다. 예:
frameworks: ['jasmine', 'requirejs'],
대상:
frameworks: ['jasmine'],
JASMIN 및 JASMIN_ADAPTER를 사용하여 이 문제를 해결하려는 경우 이는 더 이상 지원되지 않습니다(적어도 카르마 버전 0.10.2에서는).
대신 사용:
frameworks: ['jasmine']
카르마 구성 파일에 저장할 수 있습니다.이것에 대해서는 여기서 읽어보실 수 있습니다.
또한 내 파일 배열에서 내가 설정한 파일이included: false
무늬가 있는included
수동으로 Javascript 파일을 포함하려는 경우에만 사용됩니다(예: require.js를 사용할 경우).해당 패턴에서 모든 테스트를 로드할 경우 다음과 유사한 메시지가 표시됩니다.
PhantomJS 1.9.2 (Linux): Executed 0 of 0 ERROR (0.151 secs / 0 secs)
테스트를 포함한 파일이 포함되지 않았기 때문입니다.제거하기included: false
포함되지 않은 경우 기본값은 다음과 같으므로 내 패턴에 대한 파일 배열에서 이를 수정했습니다.true
.
나같은 경우에는singleRun
로 설정되었습니다.false
해결책: // Continuous Integration mode // if true, Karma captures browsers, runs the tests and exits singleRun: true
언급URL : https://stackoverflow.com/questions/16028647/karma-not-executing-any-unit-tests
'programing' 카테고리의 다른 글
jquery를 사용하여 라디오 그룹으로부터 가치를 얻습니다. (0) | 2023.09.19 |
---|---|
AngularJS - 다른 파셜 내에서 파셜을 동적으로 사용 (0) | 2023.09.19 |
함수 포인터 - 자동 재참조 (0) | 2023.09.19 |
Docker 및 Vagrant를 통해 MariaDB를 설치할 수 없습니다. (0) | 2023.09.19 |
axios post request with json data (0) | 2023.09.19 |