4

I have written multiple spec files for unit testing various modules on the webpage. If i run them individually, one at a time they work fine. But when i try to run all the files in a sequence, only the first file in the spec folder works while all other tests fail. Any help would be appreciated.

Every spec file loads a static page using requirejs and renders them on the page. Once the page is rendered i check whether the title, text etc is proper or not. The spec files looks like this. AboutSpec.js-->

require(["views/About", "nls/messages"], function (About, messages) {
beforeEach(function(){
    var temp = new About();
    temp.render(); 
});
describe("Test for About Page", function () {

    it("Check For About Title", function () {
        var aboutTitleText = $('.eight.columns h2').text();
        expect(aboutTitleText).toEqual(messages["about_title"]);
    });
});
});

FooterSpec.js-->

require(["views/Footer", "nls/messages"], function (Footer, messages) {
beforeEach(function(){
    var temp = new Footer();
    temp.render(); 
});
describe("Test for Footer Page", function () {

    it("Check For Footer Content", function () {
        var footerText = $('.five.columns h2').text();
        expect(footerText).toEqual(messages["footer_content"]);
    });
});
});

jstestDriver.conf-->

    load:
      - jasmine/lib/jasmine-1.3.1/jasmine.js
      - jasmine/lib/adapter/JasmineAdapter.js
      - js-src/javaScript/require.js
      - js-src/javaScript/default.js

    test:
      - js-test/AboutSpec.js
      - js-test/FooterSpec.js

When i run this setup, the About page does not render. Only the Footer page renders due to which all the test cases of about page fails.

Goontracker
  • 234
  • 1
  • 7

1 Answers1

1

We're facing the exact same problem, and I've spent--how many hours, now? Oh yeah, too many!-- trying to solve this problem.

Today I discovered Karma, a JsTD replacement from Google which runs every test in a fresh iframe. It also integrates with Jenkins. I'm in the process of installing it now and will report back on how it went.

Larry Gerndt
  • 1,827
  • 1
  • 12
  • 10