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() { $values = []; foreach ( ExtensionRegistry::getInstance()->getAllThings() as $thing ) { $values[] = [ $thing['path'] ]; } return $values; } /** * @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->assertEquals( false, $e->getMessage() ); } } }