1

Rubyは、私が書いたコードではなく、gemでのみ機能する必要があります。私が間違っているのは何なのかわかりません。

これは動作します

require "test-unit"
require "require "C:\\Users\\zreichert\\workspace\\FalconQA\\PageObjects\\Users\\user.rb"

これは機能しません

require "Users/user"
require "Users\user"
require "Users/user.rb"
require "Users\user.rb"
require_relative "Users/user"
require_relative "Users\user"
require_relative "Users/user.rb"
require_relative "Users\user.rb"

私が実行しているスクリプトは、-C:/ Users / zreichert / worksheet / FalconQA/testCasesにあります。

私はこのように要求する前にディレクトリを変更しようとしました

Dir.chdir "C:/Users/zreichert/workspace/FalconQA/testCases"

すべてのエラーは次のようになります

c:/Ruby193/lib/ruby/site_ruby/1.9.1/rubygems/custom_require.rb:36:in require': cannot load such file -- Users/user (LoadError) from c:/Ruby193/lib/ruby/site_ruby/1.9.1/rubygems/custom_require.rb:36:inrequire'from C:/Users/zreichert/workspace/FalconQA/testCases/FAL001.rb:14:in `

4

4 に答える 4

2

あなたが試すことができます

require "./Users/user"
于 2012-11-28T17:21:06.037 に答える
1

あなたはこれを使うことができます:

require_relative '../PageObjects/Users/user.rb'

スラッシュは、WindowsとLinux / MacOSの両方で機能するため、2つの円記号よりも優れています。

于 2012-11-28T17:08:18.873 に答える
1

Roozbehの答えを少し拡張するだけrequire_relativeで、ファイルを含むファイルの場所を基準にしてファイルをロードできます。require_relativeそうしてchdirも、これには何の影響もありません。

質問であなたが言ったことから、FAL001.rbからuser.rbへの相対パスは

../PageObjects/Users/user.rb

つまり、1レベル上に移動してから、PageObjects / Usersに移動します。したがって、

require_relative '../PageObjects/Users/user.rb'
于 2012-11-28T17:17:07.937 に答える
0

精神的な安全のヒントとして、エスケープ文字が二重引用符で囲まれた文字列でどのように解釈されるかにより、どのように見える"Users\user"かは失敗します。

代わりに、requireパラメーターに一重引用符を使用して、健全性を維持してください。

require 'foo'

また

require './relative/path/to/foo'
require '../relative/path/to/bar'
于 2012-11-28T17:47:25.023 に答える