mirror of
https://github.com/pnx/neotest-phpunit
synced 2026-06-16 03:54:55 +02:00
Copy tests from phpunit
This commit is contained in:
parent
eba8cf0c07
commit
5f13df4a8b
1 changed files with 409 additions and 0 deletions
409
specs/utils_spec.lua
Normal file
409
specs/utils_spec.lua
Normal file
|
|
@ -0,0 +1,409 @@
|
||||||
|
local utils = require("neotest-phpunit.utils")
|
||||||
|
|
||||||
|
describe("get_test_results", function()
|
||||||
|
it("parses output when testing a method", function()
|
||||||
|
local output_file = "/tmp/nvimhYaIPj/3"
|
||||||
|
local xml_output = {
|
||||||
|
testsuites = {
|
||||||
|
testsuite = {
|
||||||
|
_attr = {
|
||||||
|
assertions = "1",
|
||||||
|
errors = "0",
|
||||||
|
failures = "0",
|
||||||
|
file = "/Users/Oli/Code/Projects/neotest-phpunit/tests/Unit/ExampleTest.php",
|
||||||
|
name = "ExampleTest",
|
||||||
|
skipped = "0",
|
||||||
|
tests = "1",
|
||||||
|
time = "0.002292",
|
||||||
|
warnings = "0",
|
||||||
|
},
|
||||||
|
testcase = {
|
||||||
|
_attr = {
|
||||||
|
assertions = "1",
|
||||||
|
class = "ExampleTest",
|
||||||
|
classname = "ExampleTest",
|
||||||
|
file = "/Users/Oli/Code/Projects/neotest-phpunit/tests/Unit/ExampleTest.php",
|
||||||
|
line = "7",
|
||||||
|
name = "test_that_true_is_true",
|
||||||
|
time = "0.002292",
|
||||||
|
},
|
||||||
|
},
|
||||||
|
},
|
||||||
|
},
|
||||||
|
}
|
||||||
|
|
||||||
|
local expected = {
|
||||||
|
["/Users/Oli/Code/Projects/neotest-phpunit/tests/Unit/ExampleTest.php::7"] = {
|
||||||
|
["output_file"] = "/tmp/nvimhYaIPj/3",
|
||||||
|
["short"] = [[EXAMPLETEST
|
||||||
|
-> PASSED - test_that_true_is_true]],
|
||||||
|
["status"] = "passed",
|
||||||
|
},
|
||||||
|
}
|
||||||
|
|
||||||
|
assert.are.same(utils.get_test_results(xml_output, output_file), expected)
|
||||||
|
end)
|
||||||
|
|
||||||
|
it("parses output when testing a file", function()
|
||||||
|
local output_file = "/tmp/nvimhYaIPj/3"
|
||||||
|
local xml_output = {
|
||||||
|
testsuites = {
|
||||||
|
testsuite = {
|
||||||
|
_attr = {
|
||||||
|
assertions = "2",
|
||||||
|
errors = "0",
|
||||||
|
failures = "0",
|
||||||
|
file = "/Users/Oli/Code/Projects/neotest-phpunit/tests/Examples/UserTest.php",
|
||||||
|
name = "TestProject\\UserTest",
|
||||||
|
skipped = "0",
|
||||||
|
tests = "2",
|
||||||
|
time = "0.001525",
|
||||||
|
warnings = "0",
|
||||||
|
},
|
||||||
|
testcase = {
|
||||||
|
{
|
||||||
|
_attr = {
|
||||||
|
assertions = "3",
|
||||||
|
class = "TestProject\\UserTest",
|
||||||
|
classname = "TestProject.UserTest",
|
||||||
|
file = "/Users/Oli/Code/Projects/neotest-phpunit/tests/Examples/UserTest.php",
|
||||||
|
line = "13",
|
||||||
|
name = "testClassConstructor",
|
||||||
|
time = "0.000949",
|
||||||
|
},
|
||||||
|
},
|
||||||
|
{
|
||||||
|
_attr = {
|
||||||
|
assertions = "2",
|
||||||
|
class = "TestProject\\UserTest",
|
||||||
|
classname = "TestProject.UserTest",
|
||||||
|
file = "/Users/Oli/Code/Projects/neotest-phpunit/tests/Examples/UserTest.php",
|
||||||
|
line = "22",
|
||||||
|
name = "testTellName",
|
||||||
|
time = "0.000135",
|
||||||
|
},
|
||||||
|
},
|
||||||
|
},
|
||||||
|
},
|
||||||
|
},
|
||||||
|
}
|
||||||
|
|
||||||
|
local expected = {
|
||||||
|
["/Users/Oli/Code/Projects/neotest-phpunit/tests/Examples/UserTest.php::13"] = {
|
||||||
|
["output_file"] = "/tmp/nvimhYaIPj/3",
|
||||||
|
["short"] = [[TESTPROJECT.USERTEST
|
||||||
|
-> PASSED - testClassConstructor]],
|
||||||
|
["status"] = "passed",
|
||||||
|
},
|
||||||
|
["/Users/Oli/Code/Projects/neotest-phpunit/tests/Examples/UserTest.php::22"] = {
|
||||||
|
["output_file"] = "/tmp/nvimhYaIPj/3",
|
||||||
|
["short"] = [[TESTPROJECT.USERTEST
|
||||||
|
-> PASSED - testTellName]],
|
||||||
|
["status"] = "passed",
|
||||||
|
},
|
||||||
|
}
|
||||||
|
|
||||||
|
assert.are.same(utils.get_test_results(xml_output, output_file), expected)
|
||||||
|
end)
|
||||||
|
|
||||||
|
it("parses a file even if there is a failure", function()
|
||||||
|
local output_file = "/tmp/nvimhYaIPj/3"
|
||||||
|
local xml_output = {
|
||||||
|
testsuites = {
|
||||||
|
testsuite = {
|
||||||
|
_attr = {
|
||||||
|
assertions = "2",
|
||||||
|
errors = "0",
|
||||||
|
failures = "1",
|
||||||
|
file = "/Users/Oli/Code/Projects/neotest-phpunit/tests/Unit/ExampleTest.php",
|
||||||
|
name = "ExampleTest",
|
||||||
|
skipped = "0",
|
||||||
|
tests = "2",
|
||||||
|
time = "0.001008",
|
||||||
|
warnings = "0",
|
||||||
|
},
|
||||||
|
testcase = {
|
||||||
|
{
|
||||||
|
_attr = {
|
||||||
|
assertions = "1",
|
||||||
|
class = "ExampleTest",
|
||||||
|
classname = "ExampleTest",
|
||||||
|
file = "/Users/Oli/Code/Projects/neotest-phpunit/tests/Unit/ExampleTest.php",
|
||||||
|
line = "12",
|
||||||
|
name = "test_that_false_is_true",
|
||||||
|
time = "0.000141",
|
||||||
|
},
|
||||||
|
failure = {
|
||||||
|
[[ExampleTest::test_that_false_is_true
|
||||||
|
Failed asserting that false is true.
|
||||||
|
|
||||||
|
/Users/Oli/Code/Projects/neotest-phpunit/tests/Unit/ExampleTest.php:14]],
|
||||||
|
_attr = {
|
||||||
|
type = "PHPUnit\\Framework\\ExpectationFailedException",
|
||||||
|
},
|
||||||
|
},
|
||||||
|
},
|
||||||
|
},
|
||||||
|
},
|
||||||
|
},
|
||||||
|
}
|
||||||
|
|
||||||
|
local expected = {
|
||||||
|
["/Users/Oli/Code/Projects/neotest-phpunit/tests/Unit/ExampleTest.php::12"] = {
|
||||||
|
errors = {
|
||||||
|
{
|
||||||
|
line = "12",
|
||||||
|
},
|
||||||
|
},
|
||||||
|
output_file = "/tmp/nvimhYaIPj/3",
|
||||||
|
status = "failed",
|
||||||
|
},
|
||||||
|
}
|
||||||
|
|
||||||
|
assert.are.same(utils.get_test_results(xml_output, output_file), expected)
|
||||||
|
end)
|
||||||
|
|
||||||
|
it("parses multiple files", function()
|
||||||
|
local output_file = "/tmp/nvimhYaIPj/3"
|
||||||
|
local xml_output = {
|
||||||
|
testsuites = {
|
||||||
|
testsuite = {
|
||||||
|
_attr = {
|
||||||
|
assertions = "18",
|
||||||
|
errors = "0",
|
||||||
|
failures = "1",
|
||||||
|
name = "",
|
||||||
|
skipped = "0",
|
||||||
|
tests = "8",
|
||||||
|
time = "0.001904",
|
||||||
|
warnings = "0",
|
||||||
|
},
|
||||||
|
testsuite = {
|
||||||
|
{
|
||||||
|
_attr = {
|
||||||
|
assertions = "2",
|
||||||
|
errors = "0",
|
||||||
|
failures = "1",
|
||||||
|
name = "Unit",
|
||||||
|
skipped = "0",
|
||||||
|
tests = "2",
|
||||||
|
time = "0.001233",
|
||||||
|
warnings = "0",
|
||||||
|
},
|
||||||
|
testsuite = {
|
||||||
|
_attr = {
|
||||||
|
assertions = "2",
|
||||||
|
errors = "0",
|
||||||
|
failures = "1",
|
||||||
|
file = "/Users/Oli/Code/Projects/neotest-phpunit/tests/Unit/ExampleTest.php",
|
||||||
|
name = "ExampleTest",
|
||||||
|
skipped = "0",
|
||||||
|
tests = "2",
|
||||||
|
time = "0.001233",
|
||||||
|
warnings = "0",
|
||||||
|
},
|
||||||
|
testcase = {
|
||||||
|
{
|
||||||
|
_attr = {
|
||||||
|
assertions = "1",
|
||||||
|
class = "ExampleTest",
|
||||||
|
classname = "ExampleTest",
|
||||||
|
file = "/Users/Oli/Code/Projects/neotest-phpunit/tests/Unit/ExampleTest.php",
|
||||||
|
line = "7",
|
||||||
|
name = "test_that_true_is_true",
|
||||||
|
time = "0.001027",
|
||||||
|
},
|
||||||
|
},
|
||||||
|
{
|
||||||
|
_attr = {
|
||||||
|
assertions = "1",
|
||||||
|
class = "ExampleTest",
|
||||||
|
classname = "ExampleTest",
|
||||||
|
file = "/Users/Oli/Code/Projects/neotest-phpunit/tests/Unit/ExampleTest.php",
|
||||||
|
line = "13",
|
||||||
|
name = "this_should_fail",
|
||||||
|
time = "0.000207",
|
||||||
|
},
|
||||||
|
failure = {
|
||||||
|
[[ExampleTest::this_should_fail
|
||||||
|
Failed asserting that false is true.
|
||||||
|
|
||||||
|
/Users/Oli/Code/Projects/neotest-phpunit/tests/Unit/ExampleTest.php:15]],
|
||||||
|
_attr = {
|
||||||
|
type = "PHPUnit\\Framework\\ExpectationFailedException",
|
||||||
|
},
|
||||||
|
},
|
||||||
|
},
|
||||||
|
},
|
||||||
|
},
|
||||||
|
},
|
||||||
|
{
|
||||||
|
_attr = {
|
||||||
|
assertions = "16",
|
||||||
|
errors = "0",
|
||||||
|
failures = "0",
|
||||||
|
name = "Examples",
|
||||||
|
skipped = "0",
|
||||||
|
tests = "6",
|
||||||
|
time = "0.000671",
|
||||||
|
warnings = "0",
|
||||||
|
},
|
||||||
|
testsuite = {
|
||||||
|
{
|
||||||
|
_attr = {
|
||||||
|
assertions = "15",
|
||||||
|
errors = "0",
|
||||||
|
failures = "0",
|
||||||
|
file = "/Users/Oli/Code/Projects/neotest-phpunit/tests/Examples/UserTest.php",
|
||||||
|
name = "TestProject\\UserTest",
|
||||||
|
skipped = "0",
|
||||||
|
tests = "5",
|
||||||
|
time = "0.000646",
|
||||||
|
warnings = "0",
|
||||||
|
},
|
||||||
|
testcase = {
|
||||||
|
{
|
||||||
|
_attr = {
|
||||||
|
assertions = "3",
|
||||||
|
class = "TestProject\\UserTest",
|
||||||
|
classname = "TestProject.UserTest",
|
||||||
|
file = "/Users/Oli/Code/Projects/neotest-phpunit/tests/Examples/UserTest.php",
|
||||||
|
line = "13",
|
||||||
|
name = "testClassConstructor",
|
||||||
|
time = "0.000145",
|
||||||
|
},
|
||||||
|
},
|
||||||
|
{
|
||||||
|
_attr = {
|
||||||
|
assertions = "2",
|
||||||
|
class = "TestProject\\UserTest",
|
||||||
|
classname = "TestProject.UserTest",
|
||||||
|
file = "/Users/Oli/Code/Projects/neotest-phpunit/tests/Examples/UserTest.php",
|
||||||
|
line = "22",
|
||||||
|
name = "testTellName",
|
||||||
|
time = "0.000143",
|
||||||
|
},
|
||||||
|
},
|
||||||
|
{
|
||||||
|
_attr = {
|
||||||
|
assertions = "2",
|
||||||
|
class = "TestProject\\UserTest",
|
||||||
|
classname = "TestProject.UserTest",
|
||||||
|
file = "/Users/Oli/Code/Projects/neotest-phpunit/tests/Examples/UserTest.php",
|
||||||
|
line = "30",
|
||||||
|
name = "testTellAge",
|
||||||
|
time = "0.000026",
|
||||||
|
},
|
||||||
|
},
|
||||||
|
{
|
||||||
|
_attr = {
|
||||||
|
assertions = "3",
|
||||||
|
class = "TestProject\\UserTest",
|
||||||
|
classname = "TestProject.UserTest",
|
||||||
|
file = "/Users/Oli/Code/Projects/neotest-phpunit/tests/Examples/UserTest.php",
|
||||||
|
line = "38",
|
||||||
|
name = "testAddFavoriteMovie",
|
||||||
|
time = "0.000149",
|
||||||
|
},
|
||||||
|
},
|
||||||
|
{
|
||||||
|
_attr = {
|
||||||
|
assertions = "5",
|
||||||
|
class = "TestProject\\UserTest",
|
||||||
|
classname = "TestProject.UserTest",
|
||||||
|
file = "/Users/Oli/Code/Projects/neotest-phpunit/tests/Examples/UserTest.php",
|
||||||
|
line = "47",
|
||||||
|
name = "testRemoveFavoriteMovie",
|
||||||
|
time = "0.000183",
|
||||||
|
},
|
||||||
|
},
|
||||||
|
},
|
||||||
|
},
|
||||||
|
{
|
||||||
|
_attr = {
|
||||||
|
assertions = "1",
|
||||||
|
errors = "0",
|
||||||
|
failures = "0",
|
||||||
|
file = "/Users/Oli/Code/Projects/neotest-phpunit/tests/Examples/some/deep/nesting/NestingTest.php",
|
||||||
|
name = "NestingTest",
|
||||||
|
skipped = "0",
|
||||||
|
tests = "1",
|
||||||
|
time = "0.000025",
|
||||||
|
warnings = "0",
|
||||||
|
},
|
||||||
|
testcase = {
|
||||||
|
_attr = {
|
||||||
|
assertions = "1",
|
||||||
|
class = "NestingTest",
|
||||||
|
classname = "NestingTest",
|
||||||
|
file = "/Users/Oli/Code/Projects/neotest-phpunit/tests/Examples/some/deep/nesting/NestingTest.php",
|
||||||
|
line = "7",
|
||||||
|
name = "test_something_that_is_true",
|
||||||
|
time = "0.000025",
|
||||||
|
},
|
||||||
|
},
|
||||||
|
},
|
||||||
|
},
|
||||||
|
},
|
||||||
|
},
|
||||||
|
},
|
||||||
|
},
|
||||||
|
}
|
||||||
|
|
||||||
|
local expected = {
|
||||||
|
["/Users/Oli/Code/Projects/neotest-phpunit/tests/Examples/UserTest.php::13"] = {
|
||||||
|
output_file = "/tmp/nvimhYaIPj/3",
|
||||||
|
short = [[TESTPROJECT.USERTEST
|
||||||
|
-> PASSED - testClassConstructor]],
|
||||||
|
status = "passed",
|
||||||
|
},
|
||||||
|
["/Users/Oli/Code/Projects/neotest-phpunit/tests/Examples/UserTest.php::22"] = {
|
||||||
|
output_file = "/tmp/nvimhYaIPj/3",
|
||||||
|
short = [[TESTPROJECT.USERTEST
|
||||||
|
-> PASSED - testTellName]],
|
||||||
|
status = "passed",
|
||||||
|
},
|
||||||
|
["/Users/Oli/Code/Projects/neotest-phpunit/tests/Examples/UserTest.php::30"] = {
|
||||||
|
output_file = "/tmp/nvimhYaIPj/3",
|
||||||
|
short = [[TESTPROJECT.USERTEST
|
||||||
|
-> PASSED - testTellAge]],
|
||||||
|
status = "passed",
|
||||||
|
},
|
||||||
|
["/Users/Oli/Code/Projects/neotest-phpunit/tests/Examples/UserTest.php::38"] = {
|
||||||
|
output_file = "/tmp/nvimhYaIPj/3",
|
||||||
|
short = [[TESTPROJECT.USERTEST
|
||||||
|
-> PASSED - testAddFavoriteMovie]],
|
||||||
|
status = "passed",
|
||||||
|
},
|
||||||
|
["/Users/Oli/Code/Projects/neotest-phpunit/tests/Examples/UserTest.php::47"] = {
|
||||||
|
output_file = "/tmp/nvimhYaIPj/3",
|
||||||
|
short = [[TESTPROJECT.USERTEST
|
||||||
|
-> PASSED - testRemoveFavoriteMovie]],
|
||||||
|
status = "passed",
|
||||||
|
},
|
||||||
|
["/Users/Oli/Code/Projects/neotest-phpunit/tests/Examples/some/deep/nesting/NestingTest.php::7"] = {
|
||||||
|
output_file = "/tmp/nvimhYaIPj/3",
|
||||||
|
short = [[NESTINGTEST
|
||||||
|
-> PASSED - test_something_that_is_true]],
|
||||||
|
status = "passed",
|
||||||
|
},
|
||||||
|
["/Users/Oli/Code/Projects/neotest-phpunit/tests/Unit/ExampleTest.php::13"] = {
|
||||||
|
errors = {
|
||||||
|
{
|
||||||
|
line = "13",
|
||||||
|
},
|
||||||
|
},
|
||||||
|
output_file = "/tmp/nvimhYaIPj/3",
|
||||||
|
status = "failed",
|
||||||
|
},
|
||||||
|
["/Users/Oli/Code/Projects/neotest-phpunit/tests/Unit/ExampleTest.php::7"] = {
|
||||||
|
output_file = "/tmp/nvimhYaIPj/3",
|
||||||
|
short = [[EXAMPLETEST
|
||||||
|
-> PASSED - test_that_true_is_true]],
|
||||||
|
status = "passed",
|
||||||
|
},
|
||||||
|
}
|
||||||
|
|
||||||
|
assert.are.same(utils.get_test_results(xml_output, output_file), expected)
|
||||||
|
end)
|
||||||
|
end)
|
||||||
Loading…
Add table
Add a link
Reference in a new issue