使用Perl模块Date :: Calc安装失败

mse*_*ert 5 perl

我正在尝试安装perl模块Date :: Calc版本6.它是gnuCalc的一部分,并且在安装时失败了.我选择手动下载Date :: Calc并安装它,但它给出了完全相同的错误,如下所示.由于Date :: Calc不仅限于gnuCalc,我希望有人能指出我解决这个问题的方向.

我在Windows 7 64bit上.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'
Run Code Online (Sandbox Code Playgroud)

Dav*_* W. 6

不要用好的测试替换不好的测试.

这些测试的目的是测试.如果有问题,你需要知道它,而不是把它扫到地毯下.以某种方式解决问题.您的系统上有什么问题,或者这是测试本身的问题.如果这是测试的问题,它是否仍会影响你?如果这是一个系统问题,这可能会遇到什么问题?例如,假设有一个测试用于检查系统与Windows系统之间的连接.如果您未连接到Windows系统,则该特定测试可能不适用于您.

如果您有测试失败,请转到该模块的MetaCPAN网页,并检查左侧是否有问题,以查看是否有其他人遇到相同的错误.(Date-Calc的Bug#101232:测试套件自2015-01-01开始失败 - 新年快乐!).

还有一个QA测试人员CPAN网页,但它现在已经下降了.QA测试人员网页将向您展示各种Perl版本,模块版本,平台,并向您展示哪些测试在哪些版本的特定平台上失败.您可能需要安装该模块的替代版本.

只有在您确定失败的测试不一定适用于您之后,才执行强制安装:

cpan> force install Date::Calc
Run Code Online (Sandbox Code Playgroud)

这将贯穿整个安装,但它将跳过所有测试.(或者它仍然可以测试,但如果测试失败则不会失败.)模块仍然会因编译器错误而失败,或者无法将某些内容写入您的系统.它只是忽略了测试.

这应该是最后一次安装东西的绝望尝试.您应该已经解决了失败的测试是错误的或对您没有意义.或者,有人站在你旁边,用枪指着你说:"安装那个模块,否则我会扣动扳机!" .


或者,您可以决定使用它,并简单地使用另一个模块 - 尤其是已经包含在标准Perl发行版中的模块,如Time :: Piece.如果这是一个新的Perl程序,你也可以使用,Time::Piece因为它是Perl 的官方时间计算模块.

好吧,很难说某些东西是否正式,但是Time::Piece自5.10起包含在所有Perl安装中,并且Date::Calc虽然更受欢迎,但并非如此.但是,现在Time::Piece已经成为正式安装的一部分,它更有可能被包含在运行Perl程序的系统中.这也意味着更多人正在测试它,并且更多用户正在使用它,并且发现的错误更有可能被修复.

如果这是您正在编写的新Perl程序,请考虑使用Time::Piece而不是Date::Calc.

  • 在该错误报告的最后,有一个补丁来修复失败的测试.https://rt.cpan.org/Public/Bug/Display.html?id=101232#txn-1450438 (2认同)