##### 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.
directories = paths_to_dirs(list(paths))
        paths_by_test = {}  
        display.info('Read %d sanity test ignore line(s) for %s from: %s' % (len(lines), ansible_label, self.relative_path), verbosity=1)
        for test in sanity_get_tests():
            test_targets = SanityTargets.filter_and_inject_targets(test, targets)
            paths_by_test[test.name] = set(target.path for target in test.filter_targets(test_targets))
            if isinstance(test, SanityMultipleVersion):
                versioned_test_names.add(test.name)
                tests_by_name.update(dict(('%s-%s' % (test.name, python_version), test) for python_version in test.supported_python_versions))
            else:
                unversioned_test_names.update(dict(('%s-%s' % (test.name, python_version), test.name) for python_version in SUPPORTED_PYTHON_VERSIONS))
                tests_by_name[test.name] = test
        for line_no, line in enumerate(lines, start=1):
            if not line:
                self.parse_errors.append((line_no, 1, "Line cannot be empty or contain only a comment"))
                continue
            parts = line.split(' ')
            path = parts[0]
            codes = parts[1:]
            if not path:
                self.parse_errors.append((line_no, 1, "Line cannot start with a space"))
                continue
            if path.endswith(os.path.sep):
                if path not in directories:
                    self.file_not_found_errors.append((line_no, path))
                    continue
            else:
                if path not in paths:
                    self.file_not_found_errors.append((line_no, path))
                    continue