destroyApplication(); } /** * Populates Yii::$app with a new application * The application will be destroyed on tearDown() automatically. * @param array $config The application configuration, if needed * @param string $appClass name of the application class to create */ protected function mockApplication($config = [], $appClass = '\yii\console\Application') { new $appClass(ArrayHelper::merge([ 'id' => 'testapp', 'basePath' => __DIR__, 'vendorPath' => $this->getVendorPath(), ], $config)); } protected function getVendorPath() { $vendor = dirname(dirname(__DIR__)) . '/vendor'; if (!is_dir($vendor)) { $vendor = dirname(dirname(dirname(dirname(__DIR__)))); } return $vendor; } /** * Destroys application in Yii::$app by setting it to null. */ protected function destroyApplication() { \Yii::$app = null; } }