##### SUMMARY

Support collection roles as integration test targets.

Now that https://github.com/ansible/ansible/issues/59462 has been merged, ansible-test can be updated to support running integration test targets that are collection roles.

The planned convention is to look for targets under `roles/test/` and allow use of target-specific plugins from `plugins/{plugin_type}/test/{target_name}/`.

##### ISSUE TYPE

Feature Idea

##### COMPONENT NAME

ansible-test

##### ADDITIONAL INFORMATION

This will allow integration test targets to be written using collections instead of pre-collection roles.
variables.update(env_config.ansible_vars)
            play.update(dict(
                environment=env_config.env_vars,
                module_defaults=env_config.module_defaults,
            ))
        playbook = json.dumps([play], indent=4, sort_keys=True)
        with named_temporary_file(args=args, directory=test_env.integration_dir, prefix='%s-' % target.name, suffix='.yml', content=playbook) as playbook_path:
            filename = os.path.basename(playbook_path)
            display.info('>>> Playbook: %s\n%s' % (filename, playbook.strip()), verbosity=3)
            cmd = ['ansible-playbook', filename, '-i', os.path.relpath(test_env.inventory_path, test_env.integration_dir)]
            if start_at_task:
                cmd += ['--start-at-task', start_at_task]
            if args.tags:
                cmd += ['--tags', args.tags]
            if args.skip_tags:
                cmd += ['--skip-tags', args.skip_tags]
            if args.diff:
                cmd += ['--diff']
            if isinstance(args, NetworkIntegrationConfig):
                if args.testcase:
                    cmd += ['-e', 'testcase=%s' % args.testcase]
            if args.verbosity:
                cmd.append('-' + ('v' * args.verbosity))
            env = integration_environment(args, target, test_dir, test_env.inventory_path, test_env.ansible_config, env_config)
            cwd = test_env.integration_dir
            env['ANSIBLE_ROLES_PATH'] = os.path.abspath(os.path.join(test_env.integration_dir, 'targets'))
            module_coverage = 'non_local/' not in target.aliases
            intercept_command(args, cmd, target_name=target.name, env=env, cwd=cwd, temp_path=temp_path,
                              remote_temp_path=remote_temp_path, module_coverage=module_coverage)
def get_changes_filter(args):