Phi*_*man 1 ruby rake rspec ruby-on-rails
我们编写了一些必要的测试,但速度很慢。所以我们配置了 RSpec 来排除它们,除了在 Solano 上,我们设置了一个 ENV 变量。
# spec_helper
unless ENV['RUN_ALL_TESTS'] == 'true'
config.filter_run_excluding :slow
end
Run Code Online (Sandbox Code Playgroud)
这是可行的,但我正在尝试编写一个 rake 任务,我们可以调用它通过设置相同的 ENV 变量然后运行套件来在本地运行每个测试。我在弄清楚如何触发 RSpec 时遇到了麻烦。这就是我现在所拥有的:
# all_tests.rake
require 'rspec/core/rake_task'
desc 'Run all tests, even those usually excluded.'
task all_tests: :environment do
ENV['RUN_ALL_TESTS'] = 'true'
RSpec::Core::RakeTask.new(:spec)
end
Run Code Online (Sandbox Code Playgroud)
当我运行它时,它不运行任何测试。
我发现的大部分内容都是用于在测试中触发 rake 任务、测试 rake 任务或设置 Rakefile。我们正在使用rspec-rails,我们的默认 rake 任务已经设置。
要通过其 rake 集成运行 RSpec,您需要定义一个任务并调用它:
# all_tests.rake
require 'rspec/core/rake_task'
# Define the "spec" task, at task load time rather than inside another task
RSpec::Core::RakeTask.new(:spec)
desc 'Run all tests, even those usually excluded.'
task all_tests: :environment do
ENV['RUN_ALL_TESTS'] = 'true'
Rake::Task['spec'].invoke
end
Run Code Online (Sandbox Code Playgroud)
Rake::Task['spec'].invoke尝试时什么也没做,因为 rakeRake::FileTask在命令行和Rake::Task. 你没有'spec'定义任务,但你有一个spec目录,所以rake spec没有错误地运行并且什么也没做。
| 归档时间: |
|
| 查看次数: |
1801 次 |
| 最近记录: |