Yes, this is super easy to already do today, basically just call your tests
at the end as the last step of your playbook.

Executing arbitrary python code is possible, but you can use ansible
modules like get_url and fail and so on.

If you want to push a python script, the 'script' module is awesome for
that.

Many of users have tests integrated with their continuous deployment
process so it will fail the rolling update block before moving on the to
next, thus not taking more machines out of rotation.

However, if you feel you have to test the file module, seriously, you're
wasting time -- if the file module doesn't work for you, how good is the
product?  It would be much better to test instead for something functional,
like whether your web service is operational, rather than duplicating all
the basics of Ansible in, as you say, arbitrary python code just to make
sure Ansible works.

There's a difference between unit and integration testing, and also in
testing a live deployment.

Unit tests are things you run on development code.




On Wed, Dec 11, 2013 at 11:39 AM, Aaron Hunter <[email protected]>wrote:

> I come from an Agile software development background in which test driven
> development (TDD) is the norm. As I write Ansible scripts, I'd like some
> way of testing them. In principle, I want to test every command in a
> playbook. For example, if one of my command changes the user permissions on
> a file, I want a test that independently confirms that it has in fact done
> so. I don't see a "test" module but I may have missed it.
>
> Is that something that Ansible may offer some day? I'm thinking of the
> Ansible equivalent to unit testing. I believe it would require the ability
> to execute arbitrary Python code in the test. The Java tests I have written
> could certainly be very complex.
>
> I'm also curious what others do for testing using Ansible. What
> frameworks, etc.
>
> Thanks,
> Aaron
> DevOps Blog: http://www.sharknet.us
>
>  --
> You received this message because you are subscribed to the Google Groups
> "Ansible Project" group.
> To unsubscribe from this group and stop receiving emails from it, send an
> email to [email protected].
> For more options, visit https://groups.google.com/groups/opt_out.
>



-- 
Michael DeHaan <[email protected]>
CTO, AnsibleWorks, Inc.
http://www.ansibleworks.com/

-- 
You received this message because you are subscribed to the Google Groups 
"Ansible Project" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
For more options, visit https://groups.google.com/groups/opt_out.

Reply via email to