1

問題の説明:

app /assets/javascripts内に存在するjavascriptコード(すなわち'hello.js')をテストするjasminetest-case(すなわち'helloworld.js')を書いたときに、ROR用にjasmineをセットアップしました。実行すると、ReferenceErrorが発生します。helloWorldが定義されていません。spec/ javascript / helper /内に「hello.js」ファイルを配置すると、テストケースがエラーなしで実行されます。

RORプロジェクトの説明:

ROR(ruby on rails)プロジェクト用にジャスミンをセットアップしました。プロジェクトのバージョン情報は次のとおりです。Rails-v 3.2 jasmine 1.2.1 require.js 2.0.6

RORプロジェクトのディレクトリ構造:

ブログ/アプリ/アセット/javascripts/ hello.js application.coffee spec / javascripts / helpers / support / jasmine.yml helloworld.js spec_helper.rb
/ config requirejs.yml Gemfile

**Gemfile:**

    group :development, :test do
  gem 'rspec-rails'
  gem "capybara"
  gem "launchy"
  gem 'jasmine'
end

hello.js:

function helloWorld() {
    return "Hello world!";
}

helloworld.js

    describe("Hello world", function() {
    it("says hello", function() {
        expect(helloWorld()).toEqual("Hello world!");
    });
});

requirejs.yml:

deps:[jquery、backbone、underscore] exports:Backbone.Paginatorパス:spin:spin-1.2.5 jquery.spin:jquery.spin-0.0.1 jed:jed-0.5.0beta text:text-2.0.1 jade: jade-0.27.0 jade.runtime:jade.runtime-0.27.0 markdown:markdown-0.4.0 backback.paginator:backbone.paginator-0.1.54.8fcc333d18 fs:compat / fs path:compat / path po:plugins / po j:プラグイン/ jstubModules:-テキスト-po-jexcludeShallow:-utils / po2json#ベンダー/アセット/javascripts/jade-0.27.0を検索-name'* .js' | grep-vランタイム| sed-E's/。5 jquery.spin:jquery.spin-0.0.1 jed:jed-0.5.0beta text:text-2.0.1 jade:jade-0.27.0 jade.runtime:jade.runtime-0.27.0 markdown:markdown-0.4。 0 backback.paginator:backbone.paginator-0.1.54.8fcc333d18 fs:compat / fs path:compat / path po:plugins / po j:plugins / j tabModules:-text --po --j ExclusiveShallow:-utils / po2json#ベンダーを検索/assets/javascripts/jade-0.27.0 -name'* .js' | grep-vランタイム| sed-E's/。5 jquery.spin:jquery.spin-0.0.1 jed:jed-0.5.0beta text:text-2.0.1 jade:jade-0.27.0 jade.runtime:jade.runtime-0.27.0 markdown:markdown-0.4。 0 backback.paginator:backbone.paginator-0.1.54.8fcc333d18 fs:compat / fs path:compat / path po:plugins / po j:plugins / j tabModules:-text --po --j ExclusiveShallow:-utils / po2json#ベンダーを検索/assets/javascripts/jade-0.27.0 -name'* .js' | grep-vランタイム| sed-E's/。8fcc333d18 fs:compat / fs path:compat / path po:plugins / po j:plugins / j tabModules:-text --po --j ExclusiveShallow:-utils / po2json#find vendor / Assets / javascripts / jade-0.27.0 -name '* .js' | grep-vランタイム| sed-E's/。8fcc333d18 fs:compat / fs path:compat / path po:plugins / po j:plugins / j tabModules:-text --po --j ExclusiveShallow:-utils / po2json#find vendor / Assets / javascripts / jade-0.27.0 -name '* .js' | grep-vランタイム| sed-E's/。翡翠[^/]+ /(。).js $ / --jade / \ 1 /'-jade / compiler --jade / doctypes --jade / filters --jade / inline-tags --jade / jade --jade / lexer --jade / nodes / attrs --jade / nodes / block -コメント-jade/ノード/ブロック-jade/ノード/ケース-jade/ノード/コード-jade/ノード/コメント-jade/ノード/doctype-jade/ノード/each-jade/ノード/フィルター-jade/nodes / index --jade /ノード/リテラル​​--jade/ nodes / mixin --jade / nodes / node --jade / nodes / tag --jade / nodes / text --jade / parser --jade / self-closeing --jade / utils include:#これを強制的に含めるコンパイルされたJadeテンプレートを実行する場合-jade/runtimeモジュール:-名前:アプリケーション-名前:locale / application_esロケール:es-名前:locale / application_enロケール:enラップ:trueマップ:マークダウン:util:compat / noop jade:sass:compat / noopスタイラス:compat / noop割引:compat/noopマークダウン- js:compat / noopマーク:compat / noop less:compat / noop utils / jade.trans:jade / jade:jade / runtimecompat / noopマーク:compat / noop less:compat / noop utils / jade.trans:jade / jade:jade / runtimecompat / noopマーク:compat / noop less:compat / noop utils / jade.trans:jade / jade:jade / runtime

jasmine.yml

> 
# src_files
#
# Return an array of filepaths relative to src_dir to include before jasmine specs.
# Default: []
#
# EXAMPLE:
#
# src_files:
#   - lib/source1.js
#   - lib/source2.js
#   - dist/**/*.js
#
src_files:
  - public/javascripts/prototype.js
  - public/javascripts/effects.js
  - public/javascripts/controls.js
  - public/javascripts/dragdrop.js
  - public/javascripts/application.js
  - public/javascripts/**/*.js
  - app/assets/javascripts/*.js

# stylesheets
#
# Return an array of stylesheet filepaths relative to src_dir to include before jasmine specs.
# Default: []
#
# EXAMPLE:
#
# stylesheets:
#   - css/style.css
#   - stylesheets/*.css
#
stylesheets:
  - stylesheets/**/*.css

# helpers
#
# Return an array of filepaths relative to spec_dir to include before jasmine specs.
# Default: ["helpers/**/*.js"]
#
# EXAMPLE:
#
# helpers:
#   - helpers/**/*.js
#
helpers:
  - helpers/**/*.js

# spec_files
#
# Return an array of filepaths relative to spec_dir to include.
# Default: ["**/*[sS]pec.js"]
#
# EXAMPLE:
#
# spec_files:
#   - **/*[sS]pec.js
#
spec_files:
  - '**/*[sS]pec.js'

# src_dir
#
# Source directory path. Your src_files must be returned relative to this path. Will use root if left blank.
# Default: project root
#
# EXAMPLE:
#
# src_dir: public
#
src_dir: 

# spec_dir
#
# Spec directory path. Your spec_files must be returned relative to this path.
# Default: spec/javascripts
#
# EXAMPLE:
#
# spec_dir: spec/javascripts
#
spec_dir: spec/javascripts

次のコマンドを使用して、RORでjasmineをセットアップして実行しました

$rails g jasmine:install
$rake jasmine
your tests are here:

[2012-08-22 21:35:44] INFO WEBrick 1.3.1 [2012-08-22 21:35:44] INFO ruby​​ 1.9.2(2012-04-20)[i686-linux] [2012-08 -22 21:35:44]警告TCPServerエラー:アドレスはすでに使用されています-bind(2)[2012-08-22 21:35:44] INFO WEBrick :: HTTPServer#start:pid = 3210 port = 8888

4

1 に答える 1