4

我已经编写了多个规范文件,用于对网页上的各种模块进行单元测试。如果我单独运行它们,一次一个它们工作正常。但是当我尝试按顺序运行所有文件时,只有 spec 文件夹中的第一个文件有效,而所有其他测试都失败了。任何帮助,将不胜感激。

每个规范文件都使用 requirejs 加载一个静态页面并将它们呈现在页面上。呈现页面后,我会检查标题、文本等是否正确。规范文件看起来像这样。关于Spec.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

当我运行此设置时,“关于”页面不会呈现。由于所有关于页面的测试用例都失败,因此仅呈现页脚页面。

4

1 回答 1

1

我们面临着完全相同的问题,而我已经花了——现在有多少小时了?哦,是的,太多了!--试图解决这个问题。

今天我发现了Karma,一个来自 Google 的 JsTD 替代品,它在新的 iframe 中运行每个测试。它还与 Jenkins 集成。我现在正在安装它,并将报告它的进展情况。

于 2013-07-24T19:32:50.060 回答