我正在尝试安装perl模块Date :: Calc版本6.它是gnuCalc的一部分,并且在安装时失败了。我选择手动下载Date :: Calc并安装它,但它给出了完全相同的错误,如下所示。由于Date :: Calc不仅限于gnuCalc,我希望有人能指出我解决这个问题的方向。
我在Windows 7 64位上。 Perl是草莓Perl ver 5.18.2002
提前致谢。
E:\Downloads\Date-Calc-6.3>perl Makefile.PL
*************************************************************
****** BEWARE: Use "make install UNINST=1" to install! ******
*************************************************************
Checking if your kit is complete...
Looks good
Generating a dmake-style Makefile
Writing Makefile for Date::Calc
Writing MYMETA.yml and MYMETA.json
E:\Downloads\Date-Calc-6.3>C:\strawberry\c\bin\dmake.exe
cp lib/Date/Calc/Object.pod blib\lib\Date\Calc\Object.pod
cp lib/Date/Calc.pm blib\lib\Date\Calc.pm
cp lib/Date/Calendar/Profiles.pod blib\lib\Date\Calendar\Profiles.pod
cp lib/Date/Calendar.pm blib\lib\Date\Calendar.pm
cp lib/Date/Calendar.pod blib\lib\Date\Calendar.pod
cp lib/Date/Calc/Object.pm blib\lib\Date\Calc\Object.pm
cp lib/Date/Calc/PP.pm blib\lib\Date\Calc\PP.pm
cp lib/Date/Calendar/Profiles.pm blib\lib\Date\Calendar\Profiles.pm
cp lib/Date/Calc/PP.pod blib\lib\Date\Calc\PP.pod
cp lib/Date/Calendar/Year.pod blib\lib\Date\Calendar\Year.pod
cp lib/Date/Calendar/Year.pm blib\lib\Date\Calendar\Year.pm
cp lib/Date/Calc.pod blib\lib\Date\Calc.pod
E:\Downloads\Date-Calc-6.3>C:\strawberry\c\bin\dmake.exe test
C:\strawberry\perl\bin\perl.exe "-MExtUtils::Command::MM" "-MTest::Harness" "-e"
"undef *Test::Harness::Switches; test_harness(0, 'blib\lib', 'blib\arch')" t/*.
t
t/f000.t .. ok
t/f001.t .. ok
t/f002.t .. ok
t/f003.t .. ok
t/f004.t .. ok
t/f005.t .. ok
t/f006.t .. ok
t/f007.t .. ok
t/f008.t .. ok
t/f009.t .. ok
t/f010.t .. ok
t/f011.t .. ok
t/f012.t .. ok
t/f013.t .. ok
t/f014.t .. ok
t/f015.t .. ok
t/f016.t .. Failed 16/25 subtests
t/f017.t .. ok
t/f018.t .. ok
t/f019.t .. ok
t/f020.t .. ok
t/f021.t .. ok
t/f022.t .. ok
t/f023.t .. ok
t/f024.t .. ok
t/f025.t .. ok
t/f026.t .. ok
t/f027.t .. Failed 22/46 subtests
t/f028.t .. Failed 22/46 subtests
t/f029.t .. ok
t/f030.t .. ok
t/f031.t .. ok
t/f032.t .. ok
t/f033.t .. ok
t/f034.t .. ok
t/f035.t .. ok
t/f036.t .. ok
t/f037.t .. ok
t/m001.t .. ok
t/m002.t .. ok
t/m003.t .. ok
t/m004.t .. ok
t/m005.t .. ok
t/m006.t .. ok
t/m007.t .. ok
t/m008.t .. ok
t/m009.t .. ok
t/m010.t .. ok
t/m011.t .. ok
t/m012.t .. ok
t/m013.t .. ok
Test Summary Report
-------------------
t/f016.t (Wstat: 0 Tests: 25 Failed: 16)
Failed tests: 1-4, 6-7, 9-12, 15-17, 21-23
t/f027.t (Wstat: 0 Tests: 46 Failed: 22)
Failed tests: 7-15, 22, 24-27, 30-35, 44-45
t/f028.t (Wstat: 0 Tests: 46 Failed: 22)
Failed tests: 7-15, 22, 24-27, 30, 32, 34-37, 44-45
Files=51, Tests=3381, 3 wallclock secs ( 0.20 usr + 0.01 sys = 0.22 CPU)
Result: FAIL
Failed 3/51 test programs. 60/3381 subtests failed.
dmake.exe: Error code 255, while making 'test_dynamic'
答案 0 :(得分:6)
不要用好的测试替换不好的测试。
这些测试的目的是测试。如果有问题,你需要知道它,而不是把它扫到地毯下。以某种方式解决问题。您的系统上有什么问题,或者这是测试本身的问题。如果这是测试的问题,它是否仍会影响你?如果这是一个系统问题,这可能会遇到什么问题?例如,假设有一个测试用于检查系统与Windows系统之间的连接。如果您未连接到Windows系统,则该特定测试可能不适用于您。
如果您的测试失败,请转到该模块的MetaCPAN网页,然后在左侧查看issues,看看其他人是否收到了相同的错误。 (Bug #101232 for Date-Calc: Test suite started to fail since 2015-01-01 - 新年快乐!)。
还有一个QA测试人员CPAN网页,但它现在已经关闭了。 QA测试人员网页将向您展示各种Perl版本,模块版本,平台,并向您展示哪些测试在哪些版本的特定平台上失败。您可能需要安装该模块的替代版本。
只有在您确定失败的测试不一定适用于您之后,才能执行强制安装:
cpan> force install Date::Calc
这将贯穿整个安装,但它将跳过所有测试。 (或者它仍然可以测试,但如果测试失败则不会失败。)模块仍然会因编译器错误而失败,或者无法将某些内容写入您的系统。它只是忽略了测试。
这应该是最后一次安装东西的绝望尝试。您应该已经解决了失败的测试是错误的或对您没有意义。或者,有人站在你旁边用枪指着你,“安装那个模块,或者我会扣动扳机!”。
或者,您可以决定使用它,只需使用另一个模块 - 尤其是已经包含在标准Perl发行版中的模块,如Time::Piece。如果这是一个新的Perl程序,您也可以使用Time::Piece
,因为它是Perl的官方时间计算模块。
好的,很难说某些东西是官方,但Time::Piece
包含在自5.10以来的所有Perl安装中,Date::Calc
虽然更受欢迎,但不是“T。但是,现在Time::Piece
现在是正式安装的一部分,它更有可能被包含在运行Perl程序的系统中。这也意味着更多人正在测试它,并且更多用户正在使用它,并且发现的错误更有可能被修复。
如果这是您正在撰写的新Perl计划,请考虑使用Time::Piece
代替Date::Calc
。
答案 1 :(得分:0)
Date :: Calc手册说: 如果年份仅为一位或两位数(即,如果年份小于100),则将其映射到当前年份周围+/- 50年的“窗口”,如“Moving_Window()所述” “功能(见下文)。 所以我不得不说补丁proposed patch是正确的,至少在接下来的50年里是正确的