Using Attributes in a Minitest


Hey guys,

Is there some sort of trick to using attributes in a minitest? I’m on
10.18.2… they are just standard attributes, set in the recipe. I’ve tried
default and set attributes, neither seem to work in the test.

I’m basically just trying to write a test to make sure logs were rotated on
Windows machines. This doesn’t work:

include MiniTest::Chef::Assertions

describe ‘cookbook::default’ do

time =
log_dirs = node[‘cookbook’][‘log_dirs’]

log_dirs.each do |dir|
Dir["#{dir}/*"].each do |filename|
file =

    it "checking mtime on #{filename}" do
        assert_modified_after(file, (time.to_i -

node[‘cookbook’][‘remove_after’] * 86400))




It gives me this error when running the above recipe: NoMethodError:
undefined method `[]’ for nil:NilClass

But if I set log_dirs to the array of logs in the attributes file, and set
remove_after to 7, it works great. I also tried removing the first
attribute per this bug: but it doesn’t
seem like it’s picking up the node attributes within the ‘it’ block either.
Any idea what I need to do to use those attributes in a minitest?