jasmine-jquery 不会加载任何固定装置

jasmine-jquery won't load any fixture

我正在使用 karma + jasmine + jquery + jasmine-jquery 我有几个纯 js 单元测试,现在是时候继续编写一些 html 依赖测试了。 我尝试了 jasmine-jquery 及其 loadFixtures,但无论我尝试什么,我仍然收到没有任何有用消息的错误。

我创建了一个简单的项目来单独测试事物,这是我的设置:

.
├── karma.conf.js
├── package.json
├── spec
│   └── javascripts
│       └── fixtures
│           └── simple.test.html
└── src
    └── test
        └── js
            └── simple.test.js

package.json

{
  "dependencies": {
    "karma": "0.12.31",
    "jasmine": "2.1.1",
    "karma-jasmine": "0.3.5",
    "jasmine-jquery": "2.0.6",
    "karma-jasmine-jquery": "0.1.1",
    "karma-teamcity-reporter": "0.1.2"
  },
  "devDependencies": {
    "karma-chrome-launcher": "~0.1.7",
    "karma-firefox-launcher": "~0.1.4"
  }
}

spec/javascripts/fixtures/simple.test.html

<body>
    Test
</body>

src/test/js/simple.test.js

describe('simple', function () {
    beforeEach(function () {
        loadFixtures('simple.test.html');
    });

    it('test', function () {
        expect(true).toBeTruthy();
    });
});

我遇到了这个错误

Chrome 27.0.1453 (Linux) simple test FAILED
    Error: Fixture could not be loaded: spec/javascripts/fixtures/simple.test.html (status: error, message: undefined)
        at Object.<anonymous> (/tmp/zkurv/node_modules/karma-jasmine-jquery/lib/jasmine-jquery.js:133:17)
        at fire (/tmp/zkurv/node_modules/karma-jasmine-jquery/lib/jqueryForJasmineJqueryPlugin.js:3094:30)
        at Object.self.add (/tmp/zkurv/node_modules/karma-jasmine-jquery/lib/jqueryForJasmineJqueryPlugin.js:3140:7)
        at jasmine.Fixtures.loadFixtureIntoCache_ (/tmp/zkurv/node_modules/karma-jasmine-jquery/lib/jasmine-jquery.js:132:10)
        at jasmine.Fixtures.getFixtureHtml_ (/tmp/zkurv/node_modules/karma-jasmine-jquery/lib/jasmine-jquery.js:115:12)
        at jasmine.Fixtures.read (/tmp/zkurv/node_modules/karma-jasmine-jquery/lib/jasmine-jquery.js:77:28)
        at jasmine.Fixtures.load (/tmp/zkurv/node_modules/karma-jasmine-jquery/lib/jasmine-jquery.js:65:37)
        at jasmine.Fixtures.proxyCallTo_ (/tmp/zkurv/node_modules/karma-jasmine-jquery/lib/jasmine-jquery.js:161:29)
        at window.loadFixtures (/tmp/zkurv/node_modules/karma-jasmine-jquery/lib/jasmine-jquery.js:765:27)


Firefox 24.0.0 (Linux) simple test FAILED
    Error: Fixture could not be loaded: spec/javascripts/fixtures/simple.test.html (status: error, message: undefined) in /tmp/zkurv/node_modules/karma-jasmine-jquery/lib/jasmine-jquery.js (line 133)
    jasmine.Fixtures.prototype.loadFixtureIntoCache_/request<@/tmp/zkurv/node_modules/karma-jasmine-jquery/lib/jasmine-jquery.js:133
    jQuery.Callbacks/fire@/tmp/zkurv/node_modules/karma-jasmine-jquery/lib/jqueryForJasmineJqueryPlugin.js:3094
    jQuery.Callbacks/self.add@/tmp/zkurv/node_modules/karma-jasmine-jquery/lib/jqueryForJasmineJqueryPlugin.js:3140
    jasmine.Fixtures.prototype.loadFixtureIntoCache_@/tmp/zkurv/node_modules/karma-jasmine-jquery/lib/jasmine-jquery.js:132
    jasmine.Fixtures.prototype.getFixtureHtml_@/tmp/zkurv/node_modules/karma-jasmine-jquery/lib/jasmine-jquery.js:115
    jasmine.Fixtures.prototype.read@/tmp/zkurv/node_modules/karma-jasmine-jquery/lib/jasmine-jquery.js:77
    jasmine.Fixtures.prototype.load@/tmp/zkurv/node_modules/karma-jasmine-jquery/lib/jasmine-jquery.js:65
    jasmine.Fixtures.prototype.proxyCallTo_@/tmp/zkurv/node_modules/karma-jasmine-jquery/lib/jasmine-jquery.js:161
    window.loadFixtures@/tmp/zkurv/node_modules/karma-jasmine-jquery/lib/jasmine-jquery.js:765
    @/tmp/zkurv/src/test/js/simple.test.js:3

有什么帮助吗?

灯具需要在karma.conf.js中的文件列表中定义。 Karma 提供 /base 目录下的文件: http://karma-runner.github.io/0.8/plus/RequireJS.html

我已经按照你的方式设置了项目,在 karma.conf.js 中定义了灯具,我可以通过 Karma 启动的浏览器手动访问灯具: http://localhost:9876/base/spec/javascripts/fixtures/simple.test.html.

需要在 Jasmine 中设置默认的 fixtures 路径:

jasmine.getFixtures().fixturesPath = 'base/spec/javascripts/fixtures';
loadFixtures('simple.test.html');