angularjs karma test runner未运行任何测试

xj3cbfub  于 2024-01-05  发布在  Angular
关注(0)|答案(3)|浏览(264)

我使用与茉莉因果报应和遵循在线指南安装使用

  1. npm install --save-dev karma

字符串
和其他必需品
我跑

  1. ./node_modules/karma/bin/karma start


  1. karma start karma.conf.js


这打开了一个外部Chrome浏览器,显示Karma已连接。我为我的一个函数编写了一个简单的单元测试,它似乎根本没有运行任何测试
这是我的karma配置文件。

  1. // Karma configuration
  2. module.exports = function(config) {
  3. config.set({
  4. // base path, that will be used to resolve files and exclude
  5. basePath: '',
  6. // testing framework to use (jasmine/mocha/qunit/...)
  7. frameworks: ['jasmine'],
  8. // list of files / patterns to load in the browser
  9. files: [
  10. 'app/assets/components/angular/angular.js',
  11. 'app/assets/components/angular-mocks/angular-mocks.js',
  12. 'app/assets/javascripts/**/**/*.js',
  13. 'spec/javascripts/**/*.js'
  14. ],
  15. // list of files / patterns to exclude
  16. exclude: [],
  17. // web server port
  18. port: 8080,
  19. // level of logging
  20. // possible values: LOG_DISABLE || LOG_ERROR || LOG_WARN || LOG_INFO || LOG_DEBUG
  21. logLevel: config.LOG_INFO,
  22. // enable / disable watching file and executing tests whenever any file changes
  23. autoWatch: false,
  24. // Start these browsers, currently available:
  25. // - Chrome
  26. // - ChromeCanary
  27. // - Firefox
  28. // - Opera
  29. // - Safari (only Mac)
  30. // - PhantomJS
  31. // - IE (only Windows)
  32. browsers: ['Chrome'],
  33. // Continuous Integration mode
  34. // if true, it capture browsers, run tests and exit
  35. singleRun: false
  36. });
  37. };


我的单元测试

  1. describe('Unit: AddMedicalService',function(){
  2. beforeEach(module('DoctiblePreTreatment'));
  3. var ctrl, scope;
  4. beforeEach(inject(function($controller,$rootScope){
  5. scope = $rootScope.$new();
  6. ctrl = $controller('AddMedicalServiceModalCtrl',{
  7. $scope: scope
  8. });
  9. }));
  10. it('should create return true if var 1 is greater than var2 , false if other wise',
  11. function(){
  12. var compare1 = function(){
  13. var var1 = 1;
  14. var var2 = 0;
  15. return var1 > var2;
  16. }
  17. var compare2 = function(){
  18. var var1 = 0;
  19. var var2 = 1;
  20. return var1 > var2;
  21. }
  22. expect(compare1).toBeTruthy();
  23. expect(compare2).toBeFalsy();
  24. });
  25. });


控制器中的特定功能我试图测试

  1. (function() {
  2. app.controller('AddMedicalServiceModalCtrl',['ProviderMedicalService','Treatment','$scope','$modalInstance',function(ProviderMedicalService,Treatment,$scope,$modalInstance){
  3. $scope.newTreatment = {}
  4. $scope.checkless = function(var1,var2){
  5. var1 = parseInt(var1);
  6. var2 = parseInt(var2);
  7. if(var1 > var2){
  8. return true;
  9. }
  10. else{
  11. return false;
  12. }
  13. }
  14. }]);
  15. })();


运行karma时控制台上显示的内容

  1. INFO [karma]: Karma v0.12.21 server started at http://localhost:8080/
  2. INFO [launcher]: Starting browser Chrome
  3. INFO [Chrome 36.0.1985 (Mac OS X 10.9.4)]: Connected on socket MkqZfXcO6iIX4Od23QEr with id 9498055


附加信息:我正在使用angular-js和ruby on rails。我知道有jasmine gem可以帮助我。但是我的老板坚持我们应该尝试使用karma来做我们的单元测试/e2 e for anujs部分和rspec for rails。

wvyml7n5

wvyml7n51#

karma.config.js下,将singleRunautoWatch设置为true。在您的情况下,它们都设置为false,因此karma不会运行测试。

**singleRun:**如果为true,则捕获浏览器,运行测试并退出,退出代码为0(如果所有测试通过)或1(如果任何测试失败)。

  1. singleRun: true

字符串

**autoWatch:**启用或禁用监视文件并在其中一个文件更改时执行测试。如果您想要监视文件。

  1. autoWatch: true

eblbsuwk

eblbsuwk2#

简单但有时被忽视的原因:确保没有语法或编译错误。
如果通过IDE运行JavaScript的Karma测试,您可能会遇到运行测试时未显示的语法错误。这会导致Karma发出消息“未找到测试”。
我在WebStorm下运行了它;错误出现在“Karma Server”选项卡下,而“No tests were found”消息出现在“Test Run”(“Run”或“Test Run”工具窗口下的两个选项卡)下。

r7xajy2e

r7xajy2e3#

以下配置适用于我-

  1. reporters: ['progress', 'kjhtml'],
  2. port: 9876,
  3. colors: true,
  4. logLevel: config.LOG_INFO, // config.LOG_DEBUG,
  5. autoWatch: true,
  6. browsers: ['ChromeNS'],
  7. singleRun: false,
  8. customLaunchers: {
  9. ChromeHeadlessNS: {
  10. base: 'ChromeHeadless',
  11. flags: ['--no-sandbox', '--disable-gpu']
  12. },
  13. ChromeNS: {
  14. base: 'Chrome',
  15. flags: ['--no-sandbox', '--disable-gpu']
  16. }
  17. }

字符串

展开查看全部

相关问题