2

キー文字列を受け取る外部 API を使用しており、このキー文字列をテスト スイートに渡したいと考えています。何かのようなもの:

rake test [key=api_key]

コードとテストはオープン ソース化されますが、キー文字列を他のユーザーに配布することは許可されていないため、テスト ファイルに含めることはできません。パラメータとして渡すことはできますか?

4

2 に答える 2

2

2つのオプションがあります。これを環境変数として渡します。

API_KEY='key' rake test

次に、テストのENVオブジェクトを介してこれにアクセスできます。

key = ENV['API_KEY']

2番目のオプションは、このキーをファイル(key.txtなど)に入れて、そこから読み取ることです。そのファイルをコードと一緒に配布しないようにするには、そのファイルを.gitignoreファイル(またはSCMで使用されるignoreファイル)に追加します。

于 2012-06-12T22:43:56.317 に答える
0

どうもありがとうございました!

本当はファイルに入れてgitignorしようと思っていたのですが、rakeにパラメータを渡してしまいました。たぶん、両方を組み合わせます(長いキーです)。

  1. パラメータを追加するなど、:test タスクの Rakefile コードを変更します。

    task :test, :key do |t, k|
      result = system("ruby -Ilib -Itest -e 'ARGV.each { |f| load(f) if File.exists?(f)}' test/unit/* '#{k[:key]}'")
      exit(result ? 0 : 1)
    end
    
  2. rake テストを呼び出す ['何とか']

必要に応じて、複数のキーが必要になる場合があります。

于 2012-06-13T02:06:07.790 に答える