Настройте grunt watch для запуска тестов Jasmine для приложения с помощью requirejs

В попытке повысить свои общие навыки программирования... и узнать что-то новое. Я начал пытаться подключить решение только для внешнего интерфейса, состоящее из

  1. Дюрандаль
  2. Жасмин — [добавлено через npm]
  3. Grunt Watch для мониторинга и запуска моих тестов по мере изменения файлов кода — [добавлено через npm]

Не стесняйтесь исправлять меня, так как все это основано на моих экспериментах за последние 2 дня. Большая часть этого для меня в новинку. Моя цель состоит в том, чтобы иметь что-то похожее на то, что имеет angular с кармой.

Теперь я знаю, что проект Durandal (поставляется с настраиваемым исполнителем спецификаций, найденным в решении github)

Моя установка:

gruntfile.js

    module.exports = function(grunt) {
    var appPath = 'App/viewmodels/*.js';
    var testPath = 'Tests/**/*.js';
    grunt.initConfig({
        jasmine:    {
            pivotal: {
                src: appPath,
                options: {
                    specs: testPath,
                    template: require('grunt-template-jasmine-requirejs'),
                    templateOptions: {
                      requireConfigFile: 'SpecRunner.js'
                    }
                }
            }
        },
        jshint: {
            all: [testPath, appPath],
            options: {
                curly: true
            }
        },
        watch: {
            files: [testPath, appPath], 
            tasks: ['jshint','jasmine']
        }   
    });

    grunt.loadNpmTasks('grunt-contrib-jasmine');
    grunt.loadNpmTasks('grunt-contrib-jshint');
    grunt.loadNpmTasks('grunt-contrib-watch');

    grunt.registerTask('default', ['jshint','jasmine']);    
};

SpecRunner.js

require.config({
  paths: {
    jquery: 'Scripts/jquery-1.9.1',
    knockout: 'Scripts/knockout-2.3.0'
  },
  shim: {
    knockout: {
      exports: "ko"
    }
  }
});

Когда я запускаю grunt, я получаю сообщение о недопустимом пути или ошибке сценария: ['plugins/http'] (я разобрался с проблемой ko на скриншоте) введите здесь описание изображения

Вопрос:

Как мне настроить мой файл grunt, чтобы он требовал каких-либо зависимостей. Я новичок в требовании, и я не уверен, как настроить его, чтобы мои тесты знали, где найти такие вещи, как сторонние библиотеки и другие пользовательские файлы js, если на то пошло.


person Rohan Büchner    schedule 10.10.2013    source источник


Ответы (1)


В SpecRunner require.config отсутствует конкретная информация о пути Durandal. Если вы установите baseUrl на «Приложение», то приведенные ниже пути соответствуют образцам HTML или макету StarterKit. Если ваш макет отличается, вам придется соответствующим образом настроить его.

requirejs.config({
    paths: {
        'text': '../lib/require/text',
        'durandal':'../lib/durandal/js',
        'plugins' : '../lib/durandal/js/plugins',
        'transitions' : '../lib/durandal/js/transitions',
        'knockout': '../lib/knockout/knockout-2.3.0',
        'bootstrap': '../lib/bootstrap/js/bootstrap',
        'jquery': '../lib/jquery/jquery-1.9.1'
    }
});
person RainerAtSpirit    schedule 10.10.2013