1

我正在运行 Chef InSpec 命令资源,该资源将命令的输出与文件中的某些内容相匹配。然后我在使用以下资源后删除该文件。但是以下命令返回""并且测试失败。

describe command("some command") do
  its ('stdout') {should match /some_regex/}
end

但是当我不删除文件时,上面的命令会返回预期的输出。InSpec 资源和删除文件是否有任何问题?

4

1 回答 1

1

Rspec(以及 InSpec)有自己的两遍加载模型,与 Chef 的类似(但不相关且不同)。这意味着您可能在测试运行之前将其删除,即使它看起来像是在代码中之后。尝试使用after(:all)块?这是在普通 RSpec 中执行此操作的方法,但 InSpec 在某些地方会偏离 Rspec,所以我不是 100% 它会起作用。

于 2016-08-09T20:10:07.110 回答