【问题标题】:How to pass parameters to MiniTest::Unit::TestCase suite?如何将参数传递给 MiniTest::Unit::TestCase 套件?
【发布时间】:2012-06-12 22:33:26
【问题描述】:

我正在使用一个带有密钥字符串的外部 API,并希望将此密钥字符串传递给测试套件。比如:

rake test [key=api_key]

代码和测试将是开源的,但我不能将我的密钥字符串分发给其他用户,所以我不能把它放在测试文件中。我可以将它作为参数传递吗?

【问题讨论】:

    标签: ruby rake minitest


    【解决方案1】:

    你有两个选择。将其作为环境变量传递:

    API_KEY='key' rake test
    

    然后您可以通过测试中的 ENV 对象访问它:

    key = ENV['API_KEY']
    

    第二个选项是将这个密钥放在一个文件中(例如 key.txt),然后你从中读取它。为确保您不会将该文件与您的代码一起分发,请将其添加到您的 .gitignore 文件(或您的 SCM 使用的任何忽略文件)

    【讨论】:

      【解决方案2】:

      非常感谢!

      我实际上正在考虑将它放入一个文件并 gitignoring 它,但最终将一个参数传递给了 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 test['blah-blah']

      如果需要,它可能需要不止一个键。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2018-10-16
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多