@@ -98,6 +98,16 @@ private static function _findClasses(): array
98
98
}
99
99
if ($ autoloadClass !== null ) {
100
100
try {
101
+ // Get a list of namespaces we care about
102
+ $ namespaces = ['craft ' ];
103
+ foreach (Craft::$ app ->getPlugins ()->getAllPlugins () as $ plugin ) {
104
+ $ classParts = explode ('\\' , get_class ($ plugin ));
105
+ if (count ($ classParts ) > 1 ) {
106
+ $ namespaces [] = implode ('\\' , array_slice ($ classParts , 0 , -1 ));
107
+ }
108
+ }
109
+ $ namespaces = array_unique ($ namespaces );
110
+
101
111
/** @var ClassLoader $classLoader */
102
112
$ classLoader = $ autoloadClass ::getLoader ();
103
113
foreach ($ classLoader ->getClassMap () as $ class => $ file ) {
@@ -106,11 +116,16 @@ private static function _findClasses(): array
106
116
!interface_exists ($ class , false ) &&
107
117
!trait_exists ($ class , false ) &&
108
118
file_exists ($ file ) &&
109
- strpos ($ class , 'Codeception ' ) !== 0 &&
110
119
substr ($ class , -4 ) !== 'Test ' &&
111
120
substr ($ class , -8 ) !== 'TestCase '
112
121
) {
113
- require $ file ;
122
+ // See if it's in a namespace we care about
123
+ foreach ($ namespaces as $ namespace ) {
124
+ if (strpos ($ class , $ namespace . '\\' ) === 0 ) {
125
+ require $ file ;
126
+ break ;
127
+ }
128
+ }
114
129
}
115
130
}
116
131
} catch (\Throwable $ e ) {
0 commit comments