Don';t在完成rspec傀儡测试后删除公共傀儡模块

Don';t在完成rspec傀儡测试后删除公共傀儡模块,rspec,puppet,rspec-puppet,Rspec,Puppet,Rspec Puppet,在.fixtures.yml中,有从公共库下载的模块,如以下示例中的stdlib和concat: fixtures: forge_modules: stdlib: puppetlabs/stdlib concat: puppetlabs/concat 每当运行rspec puppet测试时,都需要下载这些模块。测试完成后,它们也会被删除 如果所有测试都完全运行,这是很好的。但是,如果有需要单独运行的失败测试,则这些模块不可用。我必须同时运行所有测试(100+),这样就可以下

.fixtures.yml
中,有从公共库下载的模块,如以下示例中的stdlib和concat:

fixtures:
  forge_modules:
    stdlib: puppetlabs/stdlib
    concat: puppetlabs/concat
每当运行rspec puppet测试时,都需要下载这些模块。测试完成后,它们也会被删除

如果所有测试都完全运行,这是很好的。但是,如果有需要单独运行的失败测试,则这些模块不可用。我必须同时运行所有测试(100+),这样就可以下载和使用公共模块。当我调试一个小错误时,这是非常烦人的


有没有办法配置rspec puppet,使其不会每次下载/删除这些公共模块?

直到最近,Puppetlabs\u spec\u helper的行为才符合您的要求,即除非所有测试都通过,否则不会清理fixtures目录

我注意到这个补丁改变了这种行为。无论如何,我也不同意这种改变

不管怎样,如果你想要旧的行为,你可以:

  • 使用早期版本的Puppetlabs_spec_helper

  • 定义自定义等级库任务

  • 或者只运行
    bundle exec rake spec\u prep spec\u standalone

  • 或者,如果您只想在一个文件中运行测试,请运行
    bundle exec rake spec\u prep;bundle exec rspec spec/somefile_spec.rb——快速失败
    。(调试失败的测试时,
    --fail fast
    选项很有用,它会在第一次失败时导致rspec中止。)

  • 要使用旧行为定义自定义规范任务,请将其添加到Rakefile中:

    desc "Run spec tests and clean the fixtures directory if successful"
    task :custom_spec do
      Rake::Task[:spec_prep].invoke
      Rake::Task[:spec_standalone].invoke
      Rake::Task[:spec_clean].invoke
    end
    
    相反,如果您希望它永远不会清理fixtures目录:

    desc "Run tests but don't clean up spec dir"
    task :custom_spec do
      Rake::Task[:spec_prep].invoke
      Rake::Task[:spec_standalone].invoke
    end
    
    在任何一种情况下,您都可以使用以下方法运行测试:

    $ bundle exec rake custom_spec
    

    直到最近,Puppetlabs_spec_帮助程序实际上按照您希望的方式运行,即除非所有测试都通过,否则不会清理fixtures目录

    我注意到这个补丁改变了这种行为。无论如何,我也不同意这种改变

    不管怎样,如果你想要旧的行为,你可以:

  • 使用早期版本的Puppetlabs_spec_helper

  • 定义自定义等级库任务

  • 或者只运行
    bundle exec rake spec\u prep spec\u standalone

  • 或者,如果您只想在一个文件中运行测试,请运行
    bundle exec rake spec\u prep;bundle exec rspec spec/somefile_spec.rb——快速失败
    。(调试失败的测试时,
    --fail fast
    选项很有用,它会在第一次失败时导致rspec中止。)

  • 要使用旧行为定义自定义规范任务,请将其添加到Rakefile中:

    desc "Run spec tests and clean the fixtures directory if successful"
    task :custom_spec do
      Rake::Task[:spec_prep].invoke
      Rake::Task[:spec_standalone].invoke
      Rake::Task[:spec_clean].invoke
    end
    
    相反,如果您希望它永远不会清理fixtures目录:

    desc "Run tests but don't clean up spec dir"
    task :custom_spec do
      Rake::Task[:spec_prep].invoke
      Rake::Task[:spec_standalone].invoke
    end
    
    在任何一种情况下,您都可以使用以下方法运行测试:

    $ bundle exec rake custom_spec
    

    puppetlabs规范助手正在下载,而不是rspec puppet。如果需要,您可以为此提交功能请求,或者使用其他方法下载测试的模块依赖项。puppetlabs-spec-helper正在下载,而不是rspec puppet。如果需要,您可以为此提交功能请求,或者使用其他工具下载模块依赖项以进行测试。我原以为这是puppetlabs_spec_helper中的一组。它实际上是来自Ruby方面。注释掉规范正是我想要的。谢谢伟大的你应该将问题标记为已解决。我原以为这是来自傀儡方面的一组傀儡Labs_spec_helper。它实际上是来自Ruby方面。注释掉规范正是我想要的。谢谢伟大的你应该把问题标记为已解决。