ugrás a tartalomhoz

Karma

inf · 2014. Jan. 16. (Cs), 01.50
Hallott már valaki a karma test runner-ről?

IDE-ben a JSTD mellett van még ez. Jasmine-el szeretnék tesztelni, és kiderült, hogy a JSTD runner-én már nincs support, viszont van egy karma runnere, amin meg van. Próbálom feltenni, de valamiért mindig empty test suite-ot ír.

// Karma configuration
// Generated on Wed Jan 15 2014 17:33:24 GMT+0100 (Közép-európai téli idő )

module.exports = function (config) {
    config.set({

        // base path, that will be used to resolve files and exclude
        basePath: '',


        // frameworks to use
        frameworks: ['jasmine', 'requirejs'],


        // list of files / patterns to load in the browser
        files: [
            {pattern: 'test-*.js', included: false}
        ],


        // list of files to exclude
        exclude: [

        ],


        // test results reporter to use
        // possible values: 'dots', 'progress', 'junit', 'growl', 'coverage'
        reporters: ['progress'],


        // web server port
        port: 9876,


        // enable / disable colors in the output (reporters and logs)
        colors: true,


        // level of logging
        // 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: false,


        // Start these browsers, currently available:
        // - Chrome
        // - ChromeCanary
        // - Firefox
        // - Opera (has to be installed with `npm install karma-opera-launcher`)
        // - Safari (only Mac; has to be installed with `npm install karma-safari-launcher`)
        // - PhantomJS
        // - IE (only Windows; has to be installed with `npm install karma-ie-launcher`)
        browsers: ['Firefox'],


        // If browser does not capture in given timeout [ms], kill it
        captureTimeout: 60000,


        // Continuous Integration mode
        // if true, it capture browsers, run tests and exit
        singleRun: false
    });
};

Ilyen a generált config fájlom. A tesztek a config fájl mellett vannak.

Egyébként elég bugyuta JSTD-hez képest, mindig újranyitja a böngészőben a runner-t a tesztek futtatásánál, meg valamiért no config file specified-ot ír, miközben config fájllal hívom...

Sikerült valakinek működésre bírni?
 
1

Alakul, kiderült, hogy speckó

inf · 2014. Jan. 16. (Cs), 03.51
Alakul, kiderült, hogy speckó beállítások kellenek requirejs futtatáshoz. Nem igazán vannak a helyzet magaslatán a hibaüzenetek terén.
2

Na sikerült összehozni, nem

inf · 2014. Jan. 16. (Cs), 04.49
Na sikerült összehozni, nem annyira egyértelmű, legalábbis első ránézésre. A különböző adaptereket a dokumentációban írtak ellenére nem rántja le automatikusan, hanem kézzel kell telepíteni npm-ből.
A config-ban valamiért szüksége van rá, hogy az összes - a tesztek által használt - fájl regisztrálva legyen, ezek közül azokat fogja futtatni, amire az include true-ra van állítva. Ha requirejs-es projektet használunk, akkor kell egy bootstrap.js, ami leválogatja a teszt fájlokat és berakja requirejs config-ba függőségnek. A teszteket innentől requirejs modulokban kell megadni, hogy el tudják kérni a függőségeket. Ezen kívül minden ugyanúgy megy, mint normál esetben.

/karma.config.js

module.exports = function (config) {
    config.set({
        basePath: './',
        frameworks: ['jasmine', 'requirejs'],
        files: [
            {pattern: 'test/bootstrap.js', included: true},
            {pattern: 'test/**/*.js', included: false},
            {pattern: 'src/**/*.js', included: false},
            {pattern: 'vendor/**/*.js', included: false}
        ],
        exclude: [

        ],
        reporters: ['progress'],
        port: 9876,
        colors: true,
        logLevel: config.LOG_INFO,
        autoWatch: true,
        browsers: ['Firefox'],
        captureTimeout: 6000,
        singleRun: false
    });
};

/test/bootstrap.js

var tests = [];
var testFilePattern = /^\/base\/test\/([^\/]+\/)*test-.+\.js$/;
for (var file in window.__karma__.files)
    if (testFilePattern.test(file))
        tests.push(file);

requirejs.config({
    baseUrl: '/base/src',
    deps: tests,
    callback: window.__karma__.start
});
/test/test-mixin.js

define(["mixin"], function (Mixin) {
    describe("A suite", function () {
        it("contains spec with an expectation", function () {
            expect(true).toBe(true);
        });
    });

});
/src/mixin.js

define(function (){
    //...
});
Nem tudom miért kell ilyen plusz köröket futni egy szimpla teszt rendszer beállításnál. Mindegy, a lényeg, hogy megvan, és elég egyszer megcsinálni...
3

A legszebb a fuggosegek nem

blacksonic · 2014. Jan. 16. (Cs), 10.55
A legszebb a fuggosegek nem letolteseben, hogy egy minor verziovaltasban csak ugy kivettek a fuggosegeket es CSAK a changes logot vegigbogaraszva talalod meg a BRAKING CHANGES alatt...
Napokban vettem elo egy regi projektet es meglepodve tapasztaltam h nem mukodik