它会构建吗?
首先要考虑的是,您的模块是否在构建?如果它没有构建,您应该检查现有的错误报告,如有必要,提交一份,或者尝试自己解决问题(下面的步骤 2 和 3b/3c)。
如果它构建但测试失败,请按照以下步骤操作。
1。判断测试是否有效
这些测试的目的是测试。如果有问题,你需要知道它,而不是把它扫到地毯下。以一种或另一种方式解决问题。您的系统是否有问题,或者这是测试本身的问题。如果这是测试的问题,它还会影响您吗?如果这是系统问题,您可能会遇到这种情况吗?例如,假设有一个测试检查您的系统和 Windows 系统之间的连接性。如果您不连接到 Windows 系统,那么该特定测试可能不适用于您。
2。检查 MetaCPAN 以获取错误报告
如果您的测试失败,请转到该模块的 MetaCPAN 网页,并检查左侧的 RT issues 以查看其他人是否遇到相同的错误。如果没有,您应该打开 RT 票证,或在项目选择的错误跟踪器中打开票证。
可能有其他用户提供的补丁。如果补丁对您有意义,您可以尝试应用它们并重新运行测试。
您也可以点击 MetaCPAN 上的 Testers 链接。 QA 测试人员网页将向您展示各种 Perl 版本、模块版本、平台,并向您展示哪些测试在特定平台上的哪些版本上失败了。您可能需要安装该模块的替代版本。
此时,您可以选择几条路径。
3a。强制安装
只有在您确定失败的测试不一定适用于您之后,才进行强制安装:
cpan> force install Date::Calc
这将贯穿整个安装过程,但会跳过所有测试。 (或者它仍然可以测试,但如果测试失败也不会失败。)。该模块仍然会因编译器错误或某些内容无法写入您的系统而失败。它只是忽略测试。
这应该是最后一次安装某些东西的绝望尝试。您应该已经确定失败的测试是错误或对您没有意义。或者,有人站在你旁边,用枪指着你的头说:“安装那个模块,否则我会扣动扳机!”。
3b。寻找替代模块
或者,您可以决定使用另一个模块。 CPAN 充满了各种解决问题的方法 (TMTOWTDI),因此有很多方法可以满足您的需求。
3c。写一些代码
或者,您可以分析测试失败的原因并修复模块或代码。忙碌的模块作者通常会喜欢带有潜在补丁的错误报告。如果作者不想修复您的问题,您可以随时 fork 一个现有模块,或编写一个新模块。
如果作者去了MIA,你可以adopt the module自己维护。 general process for adopting a module 是先尝试将代码提交给修复它的作者,然后等待一段时间,也许一个月,让作者拿起它。如果没有回复,请尝试其他联系方式、电子邮件、Google+,无论您能找到什么。之后,您可以继续 Perl IRC 聊天、邮件列表等,寻找知道作者可能在哪里的人。如果几个月后这些都不起作用,PAUSE 管理员可以调查并将模块交给您。
This is based on this excellent answer