validator = new ExtensionJsonValidator( [ $this, 'markTestSkipped' ] ); $this->validator->checkDependencies(); if ( !ExtensionRegistry::getInstance()->getAllThings() ) { $this->markTestSkipped( 'There are no extensions or skins loaded via the ExtensionRegistry' ); } } public static function providePassesValidation() { $allThings = ExtensionRegistry::getInstance()->getAllThings(); foreach ( $allThings as $thing ) { yield [ $thing['path'] ]; } } /** * @dataProvider providePassesValidation * @param string $path Path to thing's json file */ public function testPassesValidation( $path ) { try { $this->validator->validate( $path ); // All good $this->assertTrue( true ); } catch ( ExtensionJsonValidationError $e ) { $this->fail( $e->getMessage() ); } } }