0

Ruby 1.8.7、ci_reporter 1.8.4、テストユニット 2.5.4、rake 10.0.3 をインストールしました。

私の testA.rb :

require 'includeA.rb'
require 'includeB.rb'
require 'includeC.rb'
require 'includeD.rb'

Begin of the code...
... End of the code

通常、次の cmd を使用してテストを実行します。

ruby -I E:/pathToIncludeA/includeA.rb -I E:/pathToIncludeB/includeB.rb -I E:/pathToIncludeC/includeC.rb -I E:/pathToIncludeD/includeD.rb E:/pathToTestA.rb/testA.rb

そして、すべて正常に動作します。

しかし、今はrakeを使用しており、同じ方法でディレクトリを含めようとしています.

ここに私のrakefile:

require 'rake/testtask'
require 'rubygems'
gem 'ci_reporter'
gem 'test-unit' 
require 'test/unit' 
require 'ci/reporter/rake/test_unit'  

task :default => [:test]

task :test do
  ruby '-I E:/pathToIncludeA/includeA.rb', '-I E:/pathToIncludeB/includeB.rb, '-I E:/pathToIncludeC/includeC.rb', '-I E:/pathToIncludeD/includeD.rb', E:/pathToTestA.rb/testA.rb
end

しかし、次の cmd を実行すると:

rake test

次のエラーがあります。

E:/Ruby/lib/ruby/site_ruby/1.8/rubygems/custom_require.rb:31:in 'gem_original_require': no such file to load -- includeA.rb (load error)
from E:/Ruby/lib/ruby/site_ruby/1.8/rubygems/custom_require.rb:31:in 'require'
from E:/pathToTestA/testA.rb/

rake aborted!
command failed with status (1): [E:/Ruby/bin/ruby.exe -I pathToIncludeA/...]
Tasks: TOP => default => test

私は何を間違えましたか?誰かが私を助けることができますか?

4

1 に答える 1

1

これを試して:

task :test do
  sh "ruby -I E:/pathToIncludeA/includeA.rb -I E:/pathToIncludeB/includeB.rb -I E:/pathToIncludeC/includeC.rb -I E:/pathToIncludeD/includeD.rb E:/pathToTestA.rb/testA.rb"
end

rubyまたは、タスク内でメソッドを使用する必要がある場合はtestA.rb、パスをロードするように変更してから、次のようにしますinclude(A|B|C|D).rb

task :test do
  # assuming the Rakefile and the testA.rb are in the same folder.
  ruby "testA.rb"
end

testA.rbテスト スイートが などの複数のテスト ファイルで構成されている場合testB.rb、このRake::TestTaskクラスを使用するとはるかに簡単になります。Sinatra プロジェクトがそれをどのように使用してアイデアを得るかを確認してください: Sinatra/Rakefile ; Rake::TestTaskドキュメンテーション

于 2013-04-03T11:11:14.297 に答える