Run integration test with ansible playbook using terraform provisioning
You are right about Terraform having a plan-apply cycle which may not be that conducive to automation. The following has worked for me in similar situations:


Use Terraform to "develop" new versions of a base EC2 image. 
Use Ansible playbooks to provision EC2 instances off a specific version of the image and run tests on them.