- From: AJ Christensen <
>
- To: "
" <
>
- Subject: [chef] Re: Re: Accessing Test Kitchen YML Attributes
- Date: Fri, 6 Mar 2015 17:10:45 +1300
Oh, my mistake. I thought/misread this (w)as chefspec, not serverspec.
Indeed. Noah's answer holds true.
cheers,
--aj
On Fri, Mar 6, 2015 at 4:57 PM, Noah Kantrowitz
<
>
wrote:
>
>
On Mar 5, 2015, at 7:27 PM, Rudi
>
<
>
>
wrote:
>
>
> Hi,
>
>
>
> I have a simple test kitchen error I'm stuck on, would appreciate some
>
> guidance here.
>
>
>
> Working though the tutorial at KitchenCI, I'm having trouble accessing
>
> attributes set inside .kitchen.yml.
>
>
>
> The respective code is from:
>
> http://kitchen.ci/docs/getting-started/writing-server-test
>
>
>
> If I add a port attribute under suites
>
>
>
> suites:
>
> - name: default
>
> run_list:
>
> - recipe[git::default]
>
> attributes:
>
> - name: server
>
> run_list:
>
> - recipe[git::server]
>
> attributes:
>
> port: 9217
>
>
>
> Then try to access it like so in:
>
> test/integration/server/serverspec/git_daemon_spec.rb
>
>
>
> require 'serverspec'
>
>
>
> # Required by serverspec
>
> set :backend, :exec
>
>
>
> puts node['port']
>
>
>
> describe "Git Daemon" do
>
>
>
> /tmp/busser/suites/serverspec/git_daemon_spec.rb:6:in `<top (required)>':
>
> undefined local variable or method `node' for main:Object (NameError)
>
>
>
>
>
> Can you see where I'm going wrong here?
>
>
Node attributes are only available (directly) from your Chef recipe code.
>
Serverspec runs independent of Chef so node data isn't a thing there. There
>
are circuitous ways to expose things but I would avoid them. Assuming the
>
reason you want to get the port in your serverspec to check that it is
>
listening on that port, it is Correctâ„¢ to hard-code the port a second time.
>
Test code tends to violate some DRY principles because it is designed to
>
favor safety over maintenance (you run tests more then you edit old ones).
>
>
--Noah
>
Archive powered by MHonArc 2.6.16.