Class: PhpTestHook
- Inherits:
-
PhpFileHook
- Object
- Mumukit::Templates::FileHook
- PhpFileHook
- PhpTestHook
- Defined in:
- lib/test_hook.rb
Constant Summary collapse
- TEST_NAME =
'AAAMumukiTestCaseAAA'- PASSED_REGEXP =
/[✔☢] ([^\n]+)/- FAILED_REGEXP =
/✘ ([^\n]+)\n *\│\n *│ ([^イ]+│ \n )/
Instance Method Summary collapse
- #command_line(filename) ⇒ Object
- #compile_file_content(req) ⇒ Object
- #post_process_file(file, result, status) ⇒ Object
- #to_structured_result(result) ⇒ Object
Methods inherited from PhpFileHook
Instance Method Details
#command_line(filename) ⇒ Object
8 9 10 |
# File 'lib/test_hook.rb', line 8 def command_line(filename) "phpunit --testdox #{filename}" end |
#compile_file_content(req) ⇒ Object
25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 |
# File 'lib/test_hook.rb', line 25 def compile_file_content(req) "<?php\ndeclare(strict_types=1);\n\n\#{req.extra}\n\#{req.content}\n\nuse PHPUnit\\\\Framework\\\\TestCase;\n\nfinal class \#{TEST_NAME}Test extends TestCase {\n\#{req.test.lines.map {|it| ' ' + it}.join}\n}\n" end |
#post_process_file(file, result, status) ⇒ Object
12 13 14 15 16 |
# File 'lib/test_hook.rb', line 12 def post_process_file(file, result, status) return [result.strip, :errored] unless result.include? TEST_NAME super file, result, status end |
#to_structured_result(result) ⇒ Object
18 19 20 21 22 23 |
# File 'lib/test_hook.rb', line 18 def to_structured_result(result) passed_tests = result.scan(PASSED_REGEXP).map { |it| to_passed_result it } failed_tests = result.scan(FAILED_REGEXP).map { |it| to_failed_result it }.uniq { |it| it.first } passed_tests.concat(failed_tests) end |