oru / harness262
基于PHP的ECMAScript test262 harness
0.2.1
2023-12-08 10:23 UTC
Requires
- php: ^8.2
- ext-intl: *
- fidry/cpu-core-counter: *
- symfony/yaml: ^6.2
- tc39/test262: ^5.0
Requires (Dev)
- friendsofphp/php-cs-fixer: *
- infection/infection: *
- phpunit/phpunit: ^10.0
- psalm/plugin-phpunit: ^0.18.4
- symplify/easy-coding-standard: 11.2.4.72
- vimeo/psalm: ^5.6
README
该库旨在测试ecma262实现。
用法
提供的测试工具可以用来执行在Test262中描述的,由ECMA TR/104定义的测试。
执行以下命令以运行完整的测试套件。建议使用jit。
$ harness ./vendor/tc39/test262/test
命令行选项
--debug
按顺序运行测试套件,并允许使用xdebug或类似解决方案进行逐步调试。
此设置禁用了缓存和测试超时。
--no-cache
, -n
禁用测试结果的缓存。
--silent
, -s
无输出地运行测试套件。
--verbose
, -v
以扩展输出运行测试套件。
--concurrency <并行测试数量>
, -c <并行测试数量>
设置要运行的并发测试用例数。设置值在1和主机机器上可用的逻辑核心数之间限制。如果设置了--debug
选项,则此选项无效。
--strict
仅执行隐式严格的测试。
--loose
仅执行隐式非严格的测试。
--include <模式>
使用正则表达式<模式>
从提供的路径中包括匹配的路径。
--exclude <模式>
使用正则表达式<模式>
从提供的路径中排除匹配的路径。
--stop-on-error
在第一个发生的错误后停止测试套件的执行。
--stop-on-failure
在第一个发生的失败后停止测试套件的执行。
--stop-on-defect
在第一个发生的错误或失败后停止测试套件的执行。
--only-strict
, --no-strict
, --module
, --async
和--raw
提供这些选项之一将只执行具有相应前缀标记的测试用例。选项onlyStrict
和noStrict
可能被隐式设置(参见Interpreting Test262 Tests - strict mode)。这些选项是互斥的 - 提供两个这些选项将导致测试套件为空!
--timeout <秒数>
将最大执行时间更改为<秒数>
。默认值为10秒。如果设置了--debug
选项,则此选项无效。
测试
$ phpunit $ infection $ psalm