Magento2安装集成测试db,即使模块被禁用,也会为模块抛出错误

时间:2017-01-25 11:34:49

标签: integration-testing magento2

我正在尝试运行Magento2集成测试,正如我们所知,这些测试安装了一个用于测试的精简数据库。我第一次运行它时遇到以下异常:插件试图绕过类别保存并启动一些索引并在失败时抛出异常。

 Magento\Framework\Interception\Chain\Chain->Magento\Framework\Interception\Chain\{closure}() at /app/vendor/algolia/algoliasearch-magento-2/Model/Indexer/CategoryObserver.php:32
 Algolia\AlgoliaSearch\Model\Indexer\CategoryObserver->aroundSave() at /app/vendor/magento/framework/Interception/Chain/Chain.php:67

足够公平 - 他们编码时没有考虑集成测试......所以...我知道...我将从命令行禁用模块!辉煌...

php bin/magento module:disable Algolia_AlgoliaSearch

现在这是奇怪的一点 - 再次运行集成测试 - 同样的错误......

所以这是我的问题:

  1. 是否仍然安装了已禁用的模块(假设如上所述)。
  2. 如何在不卸载模块的情况下阻止模块干扰集成数据库的安装(这将是一个眨眼的麻烦,只是为了安装集成数据库。)

1 个答案:

答案 0 :(得分:0)

破解了......我写了一个补丁,在违规通话周围加了一个try {} catch (\Exception $e) {};块......

简单 - 虽然它确实意味着触摸我不拥有的代码......我仍然对更优雅的解决方案感兴趣?