Решение зависимостей Разрешение исходных файлов в карме - PullRequest
0 голосов
/ 19 декабря 2018

Мы создали наше приложение с использованием библиотеки UI5 и написали для них тесты на жасмине.У нас есть трудности в получении покрытия для этих файлов JavaScript.

  • Структура проекта: В настоящее время структура нашего проекта состоит из типичной модели, вида, структуры контроллера.У нас есть около 1000 файлов в разных иерархиях.

  • Проблема под рукой: Я пытаюсь получить освещение для этого проекта и пробую карму для этого.При стандартной конфигурации кармы я запустил тесты.Тесты провалились, и на основании логов я мог видеть, что карма ожидает, что все файлы в проекте будут перечислены в порядке их зависимостей.Это было бы чрезвычайно сложно для меня, так как количество файлов огромно.

  • Вопросы:

    1. Правильно ли я понимаю Карму?Является ли предоставление всех файлов в порядке их зависимости единственным способом?

    2. Кто-нибудь знает какое-либо альтернативное решение или альтернативную библиотеку, где я могу получить покрытие для своих файлов javascript?

Полная версия karma.config.js

module.exports = function (config) {
    config.set({
        basePath: '',
        frameworks: ['jasmine', 'openui5'],
        openui5: {
            path: "https://sapui5.hana.ondemand.com/resources/sap-ui-core.js",
            useMockServer: false
        },

        client: {
            openui5: {
                config: {
                    theme: 'sap_bluecrystal',
                    libs: 'sap.m,sap.bpm',

                    resourceRoots: {
                        "sap.bpm": "base/target/appresources/com/sap/bpm",
                    }
                }
            }
        },

        files: [
            'src/**/*.js' , 'test/**/*.js'

        ],

        preprocessors: {
            'test/**/*.js': ['coverage']
        },

        captureTimeout: 210000,
        browserDisconnectTolerance: 3,
        browserDisconnectTimeout: 210000,
        browserNoActivityTimeout: 210000,

        plugins: [
            'karma-jasmine',
            'karma-coverage',
            'karma-chrome-launcher',
            'karma-openui5',
            'karma-requirejs'

        ],
        reporters: ['progress', 'coverage'],
        port: 9878,
        colors: true,
        logLevel: config.LOG_DEBUG,
        autowatch: false,
        browsers: ['Chrome'],
        singleRun: true,
        concurrency: Infinity,
        coverageReporter: {
            includeAllSources: true,
            dir: 'coverage/',
            reporters: [
                { type: "html", subdir: "html" },
                { type: 'text-summary' }
            ]
        }
    });
};

1 Ответ

0 голосов
/ 08 января 2019

Хорошо, так: в записи препроцессора вы должны указать, какие файлы вы хотите использовать для покрытия.

В вашем файле conf вы устанавливаете тестовые файлы для контрольно-измерительных приборов, что вряд ли будет вашимхотите добиться

переключения на

preprocessors: {
  'src/**/*.js': ['coverage']
},

, вероятно, даст вам лучшие результаты:)

...