Bạn đã thử KARMA?
KARMA LINK
Nếu bạn sử dụng nghiệp, hoa nhài, và ngụm, mà tôi làm, bạn có thể cấu hình thử nghiệm của bạn như thế này
Trong gulpfile.js
var gulp = require('gulp');
var karma = require('karma').server; // Note the server property here.
gulp.task('karma', function (done) {
karma.start({
configFile: __dirname + '/karma.conf.js'
}, done);
});
Bạn sẽ cần nhập khẩu ng-html2js cho các mẫu góc
npm install ng-html2js
Trong karma.config.js (Bạn phải tạo)
module.exports = function(config) {
config.set({
// base path that will be used to resolve all patterns (eg. files, exclude)
basePath: '',
frameworks: ['jasmine'],
files: setFilesUpForTesting(),
// list of files to exclude during testing. CHANGE THIS TO YOURS!!!
exclude: [
'public/js/boot.js',
'public/js/socket.io.js'
// 'yourRootPath/folder/stuff.js
],
// NOTE THE NG-HTML2JS preprocessor you will need via NPM.
preprocessors: {
// CHANGE TO YOUR PATH for all HTML PARTIALS.
'public/directives/**/partials/*.html': 'ng-html2js',
'public/directives/**/*.js': ['coverage']
},
ngHtml2JsPreprocessor: {
stripPrefix:'public',
moduleName: 'templates'
},
reporters: ['progress', 'coverage'],
coverageReporter: {
type : 'html',
dir : 'coverage/'
},
port: 9876,
colors: true,
// possible values: config.LOG_DISABLE || config.LOG_ERROR || config.LOG_WARN || config.LOG_INFO || config.LOG_DEBUG
logLevel: config.LOG_INFO,
// enable/disable watching file and executing tests whenever any file changes
autoWatch: true,
// start these browsers
// available browser launchers: https://npmjs.org/browse/keyword/karma-launcher
browsers: ['Chrome'],
// Continuous Integration mode
// if true, Karma captures browsers, runs the tests and exits
singleRun: false
});
};
// ------------------------------------------------------------------ >
// Below code is for running either single or all test files.
// To run a single test, just pass in the test file name like so...
// If the test file name was rs-test-me-now_spec.js
// To spool up Karma you would enter
// gulp karma --single-test=rs-test-me-now <note the proceeding double hyphen>
// To just run all tests
// gulp karma
// CHANGE THE FILE PATHS BELOW!!!!!
var fixedPath = [
'public/js/jquery.js',
'public/js/jquery-ui.min.js',
'public/js/foundation.min.js',
'public/js/angular.min.js',
'public/js/angular-mocks.js',
];
var baseTestPath = 'public/test/'; // CHANGE THIS TO YOUR ROOT PATH!!!
function setFilesUpForTesting(){
fixedPath.push(testPath());
return fixedPath;
}
function testPath(){
return singleTestPath() || fullTestPath();
}
function fullTestPath(){
return 'public/test/**/*_spec.js'; // CHANGE THIS TO YOUR SPEC FOLDER!!!
// like rootFolder/somethinghere/spec/**/*_spec.js
// note the underscore that proceeds the spec.js. Get rid of if you file name does not have it.
}
function singleTestPath(){
var passedArgument = process.argv.filter(function(item){ if(/--single-test=/.test(item)){return item; }});
if(isEmpty(passedArgument)){ return false; }
return baseTestPath + '**/*' + fileName(passedArgument) + '_spec.js';
}
function fileName(argument){
if(!argument){ return; }
return argument[0].replace('--single-test=', '');
}
function isEmpty(array){
return array.length === 0;
}
------------------- END KARMA.CONFIG.js file ----------------------
Bây giờ để chạy thử nghiệm
// To run all tests
gulp karma
// To run one single file test
gulp karma --single-test=rs-test-me-now
LƯU Ý: Nếu bạn không thể làm cho nó hoạt động bình thường, hãy cho tôi biết và chúng tôi sẽ xử lý nó. Có lẽ tôi đã bỏ lỡ điều gì đó. Các tệp thử nghiệm của tôi có tên là something_test.js, chứ không phải something_spec.js. Tôi đã thay đổi mã để tạo _spec.js. Ngoài ra, bạn phải chắc chắn rằng bạn đã bao gồm tất cả các tập tin bạn cần để chạy Angular. Tôi đã cung cấp một số ví dụ trong karma.config.js của mình. Tôi cũng sử dụng Angular.
Bộ tiền xử lý (ng-html2js) biên dịch các mẫu góc cho chỉ thị. Bạn phải cài đặt nó trong package.json của bạn.
Thêm vào cuộc gọi 'src' có lẽ? 'gulp.src (['spec/lib.js', 'spec/test.js'])'. Bạn cũng có thể sử dụng * wiredep * nếu bạn đang sử dụng các phụ thuộc bower – Phil
Tôi đang chiến đấu cùng một trận chiến, tôi đã cố gắng chuyển một đối tượng cấu hình tới hàm hoa nhài như 'jasmine ({config: {files: [" foo.js " , "bar, js"]}}) 'nhưng nó vẫn không hoạt động trong trường hợp của tôi – VictorArcas