我将Redmine版本3.4.2.stable安装到Ruby 2.3.3上,然后点击rake测试。
只有3个测试失败,这对于新安装的数千次测试的第一次运行非常有用。
然后我 …
Redmine项目本身维护其核心测试,该测试假定其功能完整性已到位,即没有存在可改变功能的插件。因此,没有任何插件的普通Redmine有望通过所有核心测试。
然而,一旦你介绍插件,事情就会发生变化。由于许多插件挂钩或更改了许多内部Redmine功能(通常通过猴子补丁)以提供其功能,因此安装它们会导致核心Redmine破坏的各种测试,因为他们的假设不再适用。由于Remdine只有很少的内部API可以插入插件,因此猴子补丁通常是插件挂入核心的唯一方式。
不幸的是,很难(如果不是不可能的话)对核心测试以及插件的功能进行修补以使其适应新的/改变的行为。
这导致了目前令人遗憾的情况,几乎所有Redmine插件几乎都没有(如果有的话)测试过。有时,您将对插件的功能进行单元测试,但是功能齐全的集成测试是 非常 罕见。使用插件时,您通常不能依赖于工作测试,但必须恢复代码审查和手动点击测试。
我发现在查看插件时,最好的插件只有很少的猴子补丁,尝试将自己限制在稳定的接口或尽可能提供挂钩,并避免重写Redmine的核心功能。