##### 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.
"""Sanity test target information."""
    def __init__(self, targets, include):  
        self.targets = targets
        self.include = include
    @staticmethod
    def create(include, exclude, require):  
        """Create a SanityTargets instance from the given include, exclude and require lists."""
        _targets = SanityTargets.get_targets()
        _include = walk_internal_targets(_targets, include, exclude, require)
        return SanityTargets(_targets, _include)
    @staticmethod
    def filter_and_inject_targets(test, targets):  
        """Filter and inject targets based on test requirements and the given target list."""
        test_targets = list(targets)
        if not test.include_symlinks:
            
            test_targets = [target for target in test_targets if not target.symlink]
        if not test.include_directories or not test.include_symlinks:
            
            test_targets = [target for target in test_targets if not target.path.endswith(os.path.sep)]
        if test.include_directories:
            
            test_targets += tuple(TestTarget(path, None, None, '') for path in paths_to_dirs([target.path for target in test_targets]))
            if not test.include_symlinks:
                
                test_targets = [target for target in test_targets if not target.symlink]
        return test_targets
    @staticmethod
    def get_targets():