Strawberry Perl安装Spreadsheet::Write时测试报错求助
解决Strawberry Perl安装Spreadsheet::Write模块的测试错误
环境信息
- Perl版本:
This is perl 5, version 32, subversion 1 (v5.32.1) built for MSWin32-x64-multi-thread
错误现象
安装Spreadsheet::Write 1.03版本时,测试环节失败,报错Spreadsheet data does not match reference for 'csv',完整测试输出:
Running make test for AMALTSEV/Spreadsheet-Write-1.03.tar.gz "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/all_tests.t .. ====== Expected: Column1,Column#2,"Column 3","Column 4" 1,"Cell #2/1",C.3/1,"C.4/1/Γÿ║" 2,"Cell #2/2",C.3/2,"C.4/2/Γÿ║" ====== ====== Expected: Column1,Column#2,"Column 3","Column 4" 1,"Cell #2/1",C.3/1,"C.4/1/Γÿ║" 2,"Cell #2/2",C.3/2,"C.4/2/Γÿ║" ====== # t\lib/Common.pm:79 - WriteCSVTest(test_text_format) # Boolean assertion failed # Spreadsheet data does not match reference for 'csv' # at t\lib/Common.pm line 79, <DATA> line 1. # Common::spreadsheet_test(WriteCSVTest=HASH(0x2686580), "csv", GLOB(0x2692390)) called at t\lib/WriteCSVTest.pm line 15 # WriteCSVTest::test_text_format(WriteCSVTest=HASH(0x2686580)) called at C:/Strawberry/perl/site/lib/Test/Unit/Lite.pm line 602 # eval {...} called at C:/Strawberry/perl/site/lib/Test/Unit/Lite.pm line 601 # Test::Unit::TestSuite::run(Test::Unit::TestSuite=HASH(0x2685e30), Test::Unit::Result=HASH(0x2685e60), Test::Unit::HarnessUnit=HASH(0x78a960)) called at C:/Strawberry/perl/site/lib/Test/Unit/Lite.pm line 750 # Test::Unit::TestRunner::start(Test::Unit::HarnessUnit=HASH(0x78a960), "Test::Unit::Lite::AllTests") called at t/all_tests.t line 23 t/all_tests.t .. Failed 1/3 subtests
解决方法
跳过测试强制安装:若该测试失败不影响模块核心功能,可直接跳过测试环节完成安装:
cpanm --notest Spreadsheet::Write或使用传统CPAN命令:
perl -MCPAN -e 'install(Spreadsheet::Write, notest => 1)'调整编码环境:报错中的乱码
Γÿ║大概率是编码不匹配导致(Windows默认编码与测试用例的UTF-8冲突),先设置环境变量再重试:set PERL_UNICODE=S手动修复测试用例:若要彻底解决测试失败问题,找到测试文件
t/lib/Common.pm第79行,修改断言逻辑或替换测试用例中的乱码文本,确保编码与实际输出一致。尝试安装旧版本:若1.03版本存在兼容性问题,可降级安装稳定的旧版本:
cpanm AMALTSEV/Spreadsheet-Write-1.02.tar.gz
内容的提问来源于stack exchange,提问作者Jorocco
相关产品推荐
相关产品推荐

