问题标签 [modulino]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
perl - 为什么 Perl 模数中断测试中的“包”关键字?
假设有一个简单的 Perl 脚本 testme.pl,如下所示:
还有一个像这样的测试文件 testme.t:
运行perl testme.t
似乎按预期工作,但http://www.perlmonks.org/bare/?node_id=537361和https://stackoverflow.com/a/9134624/272387都建议添加一个包行,所以我修改了原始脚本为:
现在测试失败了:
为什么这样?
perl - 模数包名称添加到 @_
考虑以下基本的 Perl 模数:
如果我在命令行上运行它,我会得到:
如果我从测试中调用它:
换句话说,run() 中@_ 的内容会根据函数的调用方式而变化。
你能解释一下发生了什么吗?
raku - 如果需要该文件,Perl 6 是否应该运行 MAIN?
这是一个简短的 Perl 6 程序,它声明了一个MAIN子例程。如果我直接执行程序,我应该只看到输出:
当我直接执行程序时,我看到了输出:
如果我将它作为一个模块加载,我看不到任何输出:
如果我use
从程序内部进行相同的操作,我看不到任何输出:
但是,如果我使用require
,我会得到输出:
Synopsis 06字面意思是直接调用编译单元而不是被要求。require
因为在运行时有效(尽管 S06 不排除它),是否还有其他事情发生?
Rakudo Star 2016.07 和 2016.10 的行为相同。
perl - 如何调试单个 Perl 单元测试子?
我有一个带有t/
测试目录的常用 MakeMaker 模块,我可以使用例如prove -I lib t/my-test.t
.
我的测试使用Test::Class
andTest::More
和 subs(使用 Effective Perl 的 modulino 技术),如下所示:
现在我想使用 Perl 调试器来调查一个在我的模块中显示问题的测试子。我只想test_something
在调试器中运行,而不运行.t
文件中的所有其他测试子程序。
prove
似乎没有这样的选择。
perl -d -I lib t/my-test.t
运行所有测试,除非我更改我的 modulino 以调用 setup 方法,然后调用实际的测试方法,而不是__PACKAGE__->runtests()
:
如何在不修改代码的情况下只运行一个测试子?
unit-testing - 从测试中访问 perl modulino 中的全局变量
在单元测试中,我需要设置一个在 perl 脚本中使用的全局变量,我已将其更改为 modulino。我很高兴地在 modulino 中调用 subs。
在 Ubuntu 上使用为 x86_64-linux-gnu-thread-multi 构建的 perl (v5.18.2)。
请注意,模数非常简单,甚至不需要“caller()”技巧。
测试.pl
测试1.t
测试2.t
test1.t 按预期显示
test2.t(编译失败)