Karmaでjasmine-jqueryを使ってHTML fixtureをよみこもうとして少しハマったという話。ちなみにテストフレームワークはJasmine。
1. fixtureの置かれたパスを設定する
Karmaから読み込む場合はbase
というディレトリがKarmaからみたルートディレクトリになる。そのため、$APP_ROOT/test/fixtures
にフィクスチャーとなるhtmlを置いた場合は下記のようにテスト内で指定する
jasmine.getFixtures().fixturesPath = 'base/test/fixtures';
が、これだけだと読み込みできない
Error: Fixture could not be loaded: /Users/foo/Work/my_app/test/fixtures/baz.html (status: error, message: undefined)
2. Karmaでサーブするようkarm.conf.jsに書く
下記のようにincludedはfalse
にした上でサーブする対象として指定する
karma.conf.js
files: [
'public/assets/js/*.js',
'test/js/*js',
{
pattern: 'test/fixtures/*.html',
watched: true,
included: false,
served: true
}
],
とのように2点気をつけるとloadFixture
が動作するようになる