誰か私に電話してくれませんか?
具体的には、ファイルが必要なときにテストの実装に問題があります。
このようなディレクトリ ツリーを持つ mme_tools という gem を開発しています。最初の足場は、jewelerを使用して生成されました。
mme_tools
|-- examples
| |-- demo_enumerable.rb
| `-- demo_print_debug.rb
|-- Gemfile
|-- Gemfile.lock
|-- lib
| |-- mme_tools
| | |-- concurrent.rb
| | |-- debug.rb
| | |-- enumerable.rb
| | |-- version.rb
| | `-- webparse.rb
| `-- mme_tools.rb
|-- LICENSE.txt
|-- Rakefile
|-- README.rdoc
`-- test
`-- test_mme_tools.rb
ここで、mme_tools.rbは、 mme_tools サブディレクトリ (つまり)内のすべてのファイルを必要とする単純なコンテナーですrequire 'mme_tools/debug.rb'
。
例のディレクトリでは、進行するにつれていくつかの乱雑なテスト (デモ) を作成できます。これらの各デモの先頭に arequire 'mme_tools'
を配置するだけで、オプションを指定して ruby を実行するだけで問題なく動作します-I../lib
。実際、私は Netbeans を使用して開発しているので、すべての実行にそのオプションを含めています。
テスト中に問題が発生しました。test_mme_tools.rbの上部に
require 'test/unit'
require 'mme_tools'
しかし、 mme_tools.rbが見つからないと思うため、私のテストは機能しません。シェルから実行した rake タスクの出力は次のとおりです。
$ rake test
rake/rdoctask is deprecated. Use rdoc/task instead (in RDoc 2.4.2+)
/usr/bin/ruby1.8 -I"lib:lib:test" -I"/usr/lib/ruby/gems/1.8/gems/rake-0.9.2/lib" "/usr/lib/ruby/gems/1.8/gems/rake-0.9.2/lib/rake/rake_test_loader.rb" "test/**/test_*.rb"
Loaded suite /usr/lib/ruby/gems/1.8/gems/rake-0.9.2/lib/rake/rake_test_loader
Started
E
Finished in 0.02176 seconds.
1) Error:
test_compose(TC_MMETools):
NoMethodError: undefined method `compose' for MMETools::Enumerable:Module
/mnt/dropbox/DESENVOLUPAMENT/Gems/mme_tools/test/test_mme_tools.rb:19:in `test_compose'
1 tests, 0 assertions, 0 failures, 1 errors
rake aborted!
Command failed with status (1): [/usr/bin/ruby1.8 -I"lib:lib:test" -I"/usr/...]
Tasks: TOP => test
(See full trace by running task with --trace)
もちろん、Netbeans からも同じことが起こりますが、完全なトレースが表示される点が異なります。
ファイルtest_mme_tools.rbは次のとおりです。
require 'test/unit'
require 'mme_tools'
class TC_MMETools < Test::Unit::TestCase
def setup
@a=(1..12)
@b=("A".."M")
@c=%w{tantmateix adhuc nogensmenys urgell pocassolta carrincló bajanada casundena Massalcoreig}
end
def test_compose
assert_equal [2,"B","adhuc"], MMETools::Enumerable.compose(@a,@b,@c)[1]
end
end
何か案が?