Perl -d 和 modulino 问题

标签 perl debugging modulino

我有一些脚本,我已经开始使用“modulino”的想法进行单元测试。我遇到了一个问题,当使用“perl -d”调用脚本时,脚本不会运行,因为 caller() 返回真值。

我将脚本的主体包裹在 main() 中,并且一些子例程慢慢地从 main() 中拉出到它们自己的子例程中。

在脚本的顶部,我有:

main(@ARGS) unless caller();

当在 .t 测试中调用时,它可以按我的意愿工作,而不是运行 main() 以便我可以测试子例程。当我从 CLI 调用脚本时,调用 main() 效果很好。

当我从 CLI 调用它时出现问题:
perl -d myscript.pl

在这个阶段,调用者返回一个有效值(而不是 undef)并且不调用 main。

关于如何处理这个问题的建议将不胜感激。

最佳答案

-d的情况switch 与测试类似 - 你的代码由其他东西执行,在这种情况下是调试器。

您可以运行 main自己在调试器中手动调用它,或者您必须检测 caller是调试器。就像是:

main(@ARGS) if !caller() || (caller)[0] eq 'DB';

关于Perl -d 和 modulino 问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9365335/

相关文章:

android - React Native 调试器无法导入 bundle 脚本?

debugging - 是否有一个标志可以检查我的代码以查看 PyCharm 的调试器是否正在运行?

perl - 如何调试单个 Perl 单元测试子?

system - 如何在 Perl6 中制作模数?

perl - 如何使用 Perl 创建符号链接(symbolic link)?

perl - TCP,HTTP和多线程Sweet Sp

debugging - Linter 给出 "Error parsing URL"错误

python - 相当于 Perl Modulino for Ruby, Python?

perl - 通过grep从值中获取关键细节

regex - 你如何评论 Perl 正则表达式?