2015-05-22 6 views
5

Per Dokumentation können wir Gruppen-Untergruppen von Testsuiten, aber sie existiert nur in einer Datei wie untenWie gruppieren Testsuites in Jasmine, wenn Tests in verschiedenen Dateien existieren?

describe('Main Group - Module 1', function() { 

    beforeEach(function() { 
     module('app'); 
    }); 

    describe('sub group - 1', function() { // Sub group   
     // specs goes here 
    }); 

    describe('sub group - 2', function() { // Sub group  
     // specs goes here 
    }); 
}); 

Wenn ich Untergruppe halten will -1 & Untergruppen -2 in zwei verschiedenen Dateien, wie kann ich diese beiden Untergruppen in Hauptgruppe - Modul gruppieren?

Dank

+0

Leider für das, was Sie fragen, ist zur Zeit nicht möglich, obwohl es eher eine Beschränkung von Javascript als von Jasmin ist. Dadurch kann eine Funktion nicht über mehrere Dateien hinweg deklariert werden. –

+0

In welcher Version von Jasmine laufen Sie? – Adam

Antwort

2

Sie können folgendes tun:

file1.js

describe('Main Group - Module 1', function() { 

    beforeEach(function() { 
     module('app'); 
    }); 

    describe('sub group - 1', function() { // Sub group   
     // specs goes here 
    }); 

}); 

file2.js

describe('Main Group - Module 1', function() { 

    beforeEach(function() { 
     module('app'); 
    }); 

    describe('sub group - 2', function() { // Sub group  
     // specs goes here 
    }); 
}); 

Beachten Sie den gleichen Namen Elternteil.

+0

Ich habe das versucht, aber wenn der Testbericht generiert wird, wird er als zwei verschiedene Gruppen angezeigt. :( –

+0

Das funktioniert für mich - @ShivKumar, haben Sie sichergestellt, dass die Beschreibungen identisch sind? –

+0

Ja Kevin, ich verwende tatsächlich Karma-HTML berichtet, um es zu generieren. –

1

Mein Anwendungsfall dafür ist Jasmine-Node, so dass die require Aussagen für mich keinen Unterschied machen. Wenn Sie browserbasiert Jasmine verwenden, müssen Sie RequireJS für diese Lösung verwenden. Alternativ können Sie ohne require-Anweisungen this example from the Jasmine repo issues verwenden.

file1.js

module.exports = function() { 
    describe('sub group - 1', function() { // Sub group   
     // specs goes here 
    }); 
}; 

file2.js

module.exports = function() { 
    describe('sub group - 2', function() { // Sub group   
     // specs goes here 
    }); 
}; 

file3.js

var subgroup1 = require('./file1.js'); 
var subgroup2 = require('./file2.js'); 

describe('Main Group - Module 1', function() { 

    beforeEach(function() { 
     module('app'); 
    }); 

    subgroup1(); 
    subgroup2(); 
});