2015-04-26 6 views
4

Мои тесты на жасминовые узлы выполняются дважды.Тесты на жасминовые узлы выполняются дважды

Я запускаю те тесты из задания Grunt, а также из команды Jasmine. Результат тот же, мои тесты выполняются дважды. Мой package.json:

{ 
    "name": "test", 
    "version": "0.0.0", 
    "dependencies": { 
    "express": "4.x", 
    "mongodb": "~2.0" 
    }, 
    "devDependencies": { 
    "grunt": "~0.4.5", 
    "grunt-jasmine-node":"~0.3.1 " 
    } 
} 

Вот мой Gruntfile.js экстракт:

grunt.initConfig({ 
    jasmine_node: { 
     options: { 
     forceExit: true, 
     match: '.', 
     matchall: true, 
     extensions: 'js', 
     specNameMatcher: 'spec' 
     }, 
     all: ['test/'] 
    } 
    }); 
    grunt.loadNpmTasks('grunt-jasmine-node'); 
    grunt.registerTask('jasmine', 'jasmine_node'); 

Один из моего тестового файла:

describe("Configuration setup", function() { 
    it("should load local configurations", function(next) { 
     var config = require('../config')(); 
     expect(config.mode).toBe('local'); 
     next(); 
    }); 
    it("should load staging configurations", function(next) { 
     var config = require('../config')('staging'); 
     expect(config.mode).toBe('staging'); 
     next(); 
    }); 
    it("should load production configurations", function(next) { 
     var config = require('../config')('production'); 
     expect(config.mode).toBe('production'); 
     next(); 
    }); 
}); 

У меня 2 тестовых файлов для 4 утверждений

Подсчет:

grunt jasmine 
Running "jasmine_node:all" (jasmine_node) task 
........ 

Finished in 1.781 seconds 
8 tests, 8 assertions, 0 failures, 0 skipped 

У вас есть идеи?

+0

Вы решили свою проблему? – crashbus

+0

Здравствуйте, к сожалению нет, тогда я перешел на тест мокки – Lombric

ответ

2

Все кредиты от 1.618. Он ответил на этот вопрос здесь: grunt jasmine-node tests are running twice

Это выглядит как некорректное поведение. Быстрое исправление для настройки jasmine_node в вашем Gruntfile так:

jasmine_node: { 
    options: { 
     forceExit: true, 
     host: 'http://localhost:' + port + '/', 
     match: '.', 
     matchall: false, 
     extensions: 'js', 
     specNameMatcher: '[sS]pec' 
    }, 
    all: [] 
} 

Ключ параметр all. Плагин grunt ищет файлы с spec в названии. По какой-то причине он выглядит в каталоге spec/и везде. Если вы укажете каталог spec, его файлы будут взяты дважды. Если вы не укажете, он будет установлен только один раз, но тогда вы не можете поставить spec в любом из ваших нетестовых имен файлов.

Смежные вопросы