##### 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.
environment_exclude = get_integration_filter(args, internal_targets)
    environment_exclude += cloud_filter(args, internal_targets)
    if environment_exclude:
        exclude += environment_exclude
        internal_targets = walk_internal_targets(targets, args.include, exclude, require)
    if not internal_targets:
        raise AllTargetsSkipped()
    if args.start_at and not any(target.name == args.start_at for target in internal_targets):
        raise ApplicationError('Start at target matches nothing: %s' % args.start_at)
    if init_callback:
        init_callback(args, internal_targets)
    cloud_init(args, internal_targets)
    vars_file_src = os.path.join(data_context().content.root, data_context().content.integration_vars_path)
    if os.path.exists(vars_file_src):
        def integration_config_callback(files):  
            """
            Add the integration config vars file to the payload file list.
            This will preserve the file during delegation even if the file is ignored by source control.
            """
            if data_context().content.collection:
                working_path = data_context().content.collection.directory
            else:
                working_path = ''
            files.append((vars_file_src, os.path.join(working_path, data_context().content.integration_vars_path)))
        data_context().register_payload_callback(integration_config_callback)
    if args.delegate:
        raise Delegate(require=require, exclude=exclude, integration_targets=internal_targets)
    install_command_requirements(args)
    return internal_targets
def command_integration_filtered(args, targets, all_targets, inventory_path, pre_target=None, post_target=None,