mirror of
https://github.com/dorny/test-reporter.git
synced 2026-02-01 10:55:23 -08:00
Compare commits
431 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
b082adf0ec | ||
|
|
bcafc9fcbe | ||
|
|
b0cbac615f | ||
|
|
c92a2893a9 | ||
|
|
6697ec40e6 | ||
|
|
63870298f5 | ||
|
|
68967725f7 | ||
|
|
e17be7e007 | ||
|
|
6efb86e1f8 | ||
|
|
055bc8c025 | ||
|
|
17c900ba4e | ||
|
|
ff2d13cc36 | ||
|
|
20823bb69a | ||
|
|
0be3971fec | ||
|
|
4ee97617f7 | ||
|
|
a97700c53c | ||
|
|
837045e72b | ||
|
|
d1de4d5f06 | ||
|
|
f24c625f56 | ||
|
|
6a8a429644 | ||
|
|
ee446707ff | ||
|
|
fe45e95373 | ||
|
|
e40a1da745 | ||
|
|
3445860437 | ||
|
|
9ef5c136b2 | ||
|
|
83e20c1534 | ||
|
|
4331a3b620 | ||
|
|
04232af26f | ||
|
|
cf146f4036 | ||
|
|
33fc27cf09 | ||
|
|
8fd5fc58ca | ||
|
|
fc80cb4400 | ||
|
|
79ea6a9d0e | ||
|
|
aef3d726a6 | ||
|
|
c1a56edcfe | ||
|
|
3b9dad208e | ||
|
|
7c636a991c | ||
|
|
cfce4bda71 | ||
|
|
fe87682515 | ||
|
|
9b8d3b002e | ||
|
|
e2f0ff6339 | ||
|
|
bc8c29617e | ||
|
|
9aef9d168f | ||
|
|
6b64465c34 | ||
|
|
6617053f9c | ||
|
|
43a747d94c | ||
|
|
7b7927aa7d | ||
|
|
eeac280b8e | ||
|
|
6939db53fb | ||
|
|
b3812e0f5b | ||
|
|
cd299561e7 | ||
|
|
c7935221e6 | ||
|
|
5fb0582760 | ||
|
|
7148297f02 | ||
|
|
828632acd0 | ||
|
|
4a41472ca4 | ||
|
|
22dc7b52f4 | ||
|
|
bed521d765 | ||
|
|
6079ce3d17 | ||
|
|
de77f76b7e | ||
|
|
c883ae9738 | ||
|
|
35be98f7e7 | ||
|
|
f372a8338e | ||
|
|
948dd03d7b | ||
|
|
cf9db500ed | ||
|
|
ba33405987 | ||
|
|
34d8269ede | ||
|
|
fd1c798d8d | ||
|
|
2211cf1035 | ||
|
|
be3721d54a | ||
|
|
d171d89cd4 | ||
|
|
661decd3af | ||
|
|
bd9e36bf0c | ||
|
|
9642942c97 | ||
|
|
aa953f36f9 | ||
|
|
f686ce916a | ||
|
|
b14337a039 | ||
|
|
ec1e910416 | ||
|
|
353a438514 | ||
|
|
dc3a92680f | ||
|
|
e8e27361af | ||
|
|
ec9d9d2459 | ||
|
|
be36461fba | ||
|
|
9c4a54379f | ||
|
|
07e5c648b5 | ||
|
|
4d84da17a1 | ||
|
|
1c33c4c823 | ||
|
|
eea8b67eb1 | ||
|
|
8dd7047bf0 | ||
|
|
71814ae0cd | ||
|
|
4128d36b92 | ||
|
|
d1504ea554 | ||
|
|
18430db883 | ||
|
|
ae8bd195f8 | ||
|
|
a1ac327414 | ||
|
|
09bbc2665b | ||
|
|
5456de96b0 | ||
|
|
6adcc0c72a | ||
|
|
2312e637f3 | ||
|
|
3a1ec876a9 | ||
|
|
c4b9a11207 | ||
|
|
981f52cdc2 | ||
|
|
016f16f7b8 | ||
|
|
6126f49c2c | ||
|
|
be2b975095 | ||
|
|
a6b3e93884 | ||
|
|
223c6cd55b | ||
|
|
b522d19cac | ||
|
|
d56352b96c | ||
|
|
f078ba5e08 | ||
|
|
389794c9ad | ||
|
|
9934a5fbd4 | ||
|
|
0f25185fa5 | ||
|
|
fb07f1b2a5 | ||
|
|
364887ed35 | ||
|
|
0b4ea9b681 | ||
|
|
302102c9a4 | ||
|
|
890a17cecf | ||
|
|
53f5051dfe | ||
|
|
d6ff56a60a | ||
|
|
b0baeedf4a | ||
|
|
ebe4a9b005 | ||
|
|
4a3cfcde80 | ||
|
|
84bcb5d437 | ||
|
|
a8c55a3654 | ||
|
|
a0398fb7dd | ||
|
|
34f1c566ff | ||
|
|
7745ff0ec1 | ||
|
|
d33ca7294f | ||
|
|
29aefa7a46 | ||
|
|
f1fa471229 | ||
|
|
0f47a5bec1 | ||
|
|
2b2d091d3d | ||
|
|
0840d7c281 | ||
|
|
0841c8130e | ||
|
|
d1bf678c89 | ||
|
|
5b44774702 | ||
|
|
ef7793576a | ||
|
|
2acf6c2ccd | ||
|
|
8b055ac247 | ||
|
|
bb9fb75efb | ||
|
|
596aee5d4e | ||
|
|
d609194929 | ||
|
|
8039983cdb | ||
|
|
314ef1dd49 | ||
|
|
6e6a65b7a0 | ||
|
|
3bd727259a | ||
|
|
5c0d9a463a | ||
|
|
613e721b02 | ||
|
|
f4ba16072c | ||
|
|
27dd4e035f | ||
|
|
10d304d4fb | ||
|
|
70db77d88c | ||
|
|
41662db5ca | ||
|
|
472c8c84b3 | ||
|
|
f5b0d547ba | ||
|
|
374896edff | ||
|
|
1a288b62f8 | ||
|
|
d61b558e8d | ||
|
|
fd386493ac | ||
|
|
3847ac0f98 | ||
|
|
f067224a7b | ||
|
|
c92ced3737 | ||
|
|
95058abb17 | ||
|
|
7befe80c6c | ||
|
|
45526f79fd | ||
|
|
9557e57e83 | ||
|
|
9d0f09a6b6 | ||
|
|
84e60bad69 | ||
|
|
1db430559c | ||
|
|
e052c7d317 | ||
|
|
de62e458d1 | ||
|
|
bec9662ac9 | ||
|
|
4067b7aa0f | ||
|
|
2d69204ad0 | ||
|
|
101b53723e | ||
|
|
3c93b151a3 | ||
|
|
06ae02969c | ||
|
|
21ae91ed3c | ||
|
|
521e122f40 | ||
|
|
482d7087e0 | ||
|
|
1397b99b7c | ||
|
|
d8481703bc | ||
|
|
c40b69fc4a | ||
|
|
ce340de8b9 | ||
|
|
953e623fd8 | ||
|
|
49c1f3ae6c | ||
|
|
b34d4b1bfe | ||
|
|
574868ab61 | ||
|
|
78ed680850 | ||
|
|
7676f84e6e | ||
|
|
b6671b1f76 | ||
|
|
eb1e62c1b1 | ||
|
|
41db6fbaaa | ||
|
|
81a2b8afcb | ||
|
|
653ebca2c2 | ||
|
|
675ad23cef | ||
|
|
9098107e2a | ||
|
|
31a54ee7eb | ||
|
|
2c14ff72a2 | ||
|
|
ed4d3e60ee | ||
|
|
ed2a32e11c | ||
|
|
32faf3e060 | ||
|
|
6e78727599 | ||
|
|
477942de89 | ||
|
|
f763877804 | ||
|
|
9d4bb43029 | ||
|
|
cacdfc564b | ||
|
|
a26c5eaf39 | ||
|
|
e1a31eb7a0 | ||
|
|
775c900089 | ||
|
|
3816496a0a | ||
|
|
c1768c8b7a | ||
|
|
c40d89d5e9 | ||
|
|
9a5ccba454 | ||
|
|
82b258b19e | ||
|
|
80874c1df3 | ||
|
|
99e65e60b1 | ||
|
|
0863296b14 | ||
|
|
1212842c04 | ||
|
|
4cd9c62896 | ||
|
|
1a3cfe6b48 | ||
|
|
7e5f292040 | ||
|
|
0b7d35fd12 | ||
|
|
ccc63b813f | ||
|
|
d5456180a6 | ||
|
|
a923ed8851 | ||
|
|
eaa763f6ff | ||
|
|
214929bdc3 | ||
|
|
5c9213582c | ||
|
|
5edc9e96e2 | ||
|
|
86a2010147 | ||
|
|
aa82f530a5 | ||
|
|
24b216b6b8 | ||
|
|
996dd3b9b1 | ||
|
|
4bb68fffaa | ||
|
|
08c81a1fd6 | ||
|
|
d9ef69ec3d | ||
|
|
7aa575a237 | ||
|
|
c1926959e2 | ||
|
|
9e2e57e817 | ||
|
|
ddfa15d232 | ||
|
|
b1ecc16057 | ||
|
|
57cb2734c7 | ||
|
|
feda17a8d8 | ||
|
|
dd41adfb19 | ||
|
|
35f0c29818 | ||
|
|
71f6751394 | ||
|
|
84909f338e | ||
|
|
e091fade5c | ||
|
|
601ab2b789 | ||
|
|
62b89ea98d | ||
|
|
be0e2e90e1 | ||
|
|
ed05640994 | ||
|
|
1c044b4aef | ||
|
|
6d7a9adaba | ||
|
|
6a1c2425d8 | ||
|
|
08340ff7ea | ||
|
|
87b594606a | ||
|
|
817da85e61 | ||
|
|
1e3a380fe6 | ||
|
|
214173a332 | ||
|
|
62af3652ec | ||
|
|
ededcdb047 | ||
|
|
9b29e4187a | ||
|
|
4b7b789017 | ||
|
|
afe6793191 | ||
|
|
5c714d27be | ||
|
|
f3a6ff2ed4 | ||
|
|
4eb4bc24cc | ||
|
|
91ccfa2026 | ||
|
|
9301b44e65 | ||
|
|
bd1b0de0a3 | ||
|
|
d132e07d7b | ||
|
|
a677deca36 | ||
|
|
8b17ce49e0 | ||
|
|
36f318e411 | ||
|
|
dd9d115889 | ||
|
|
efc4fb37d0 | ||
|
|
06d7fcc876 | ||
|
|
19f5a0d16b | ||
|
|
b09b166dac | ||
|
|
92138a66fc | ||
|
|
148c3e5c6d | ||
|
|
dcaa140ba1 | ||
|
|
61135b8121 | ||
|
|
62386e9601 | ||
|
|
b5ef0e7f1f | ||
|
|
3fcc30fab5 | ||
|
|
eb71782ba1 | ||
|
|
54a8c3cafe | ||
|
|
f120b1e36c | ||
|
|
76dd0e0b7b | ||
|
|
ef9ec10825 | ||
|
|
bc48d4dfff | ||
|
|
a02f895e5a | ||
|
|
589592494f | ||
|
|
ac305c191c | ||
|
|
76a051e007 | ||
|
|
28dac3b115 | ||
|
|
476b57a800 | ||
|
|
0ada353da4 | ||
|
|
948526218f | ||
|
|
f4404ee06a | ||
|
|
ea0fb9188a | ||
|
|
daece3018b | ||
|
|
d51dd9ab50 | ||
|
|
2cc6a8c9ef | ||
|
|
9e78da5e1b | ||
|
|
2f005230e2 | ||
|
|
2868c9aa28 | ||
|
|
279d40aa15 | ||
|
|
fc13ca0827 | ||
|
|
375f855d6c | ||
|
|
724497a84c | ||
|
|
3608ee03fd | ||
|
|
bd77050543 | ||
|
|
49667db475 | ||
|
|
83b7f42d2d | ||
|
|
e9fa2f582c | ||
|
|
3963c5302f | ||
|
|
33529f74ef | ||
|
|
ac8472f51a | ||
|
|
b45fb8b405 | ||
|
|
396026f3c5 | ||
|
|
a5c5b636ff | ||
|
|
75b0cadf5f | ||
|
|
0042016d8d | ||
|
|
15ec24088d | ||
|
|
e7733f494f | ||
|
|
8bf0c7d9a7 | ||
|
|
6af36d9ecf | ||
|
|
035c1f9d21 | ||
|
|
86d6ec5dd5 | ||
|
|
a91086638b | ||
|
|
f191e67022 | ||
|
|
578b47fbd3 | ||
|
|
aebbb4d7c4 | ||
|
|
3a48f6e045 | ||
|
|
e5edb614dd | ||
|
|
b41f730922 | ||
|
|
d71eea3059 | ||
|
|
074fe2cd27 | ||
|
|
3b54f63d95 | ||
|
|
48bf7af48b | ||
|
|
2f63fb86e1 | ||
|
|
21b00b9bcc | ||
|
|
f3b6327f90 | ||
|
|
59de73d003 | ||
|
|
3cca7492d0 | ||
|
|
c9b3d0e2bd | ||
|
|
d93282af1c | ||
|
|
e54753f811 | ||
|
|
ba1a54f2f4 | ||
|
|
ae902f665e | ||
|
|
a3356fa639 | ||
|
|
0d9714ddc7 | ||
|
|
aba461c3a7 | ||
|
|
a95a149c9a | ||
|
|
0b7f7244db | ||
|
|
b595428c55 | ||
|
|
5558abf4ac | ||
|
|
bbf369dfb0 | ||
|
|
57e5862411 | ||
|
|
81fcbf17a9 | ||
|
|
4c7348c4be | ||
|
|
8848447e3f | ||
|
|
8b0cebbf1d | ||
|
|
19aaf9016e | ||
|
|
6bd7855a9d | ||
|
|
c3f44eaca3 | ||
|
|
d553414051 | ||
|
|
ceb9822f8b | ||
|
|
74d8fd673e | ||
|
|
d1e7a9281a | ||
|
|
0d00bb14cb | ||
|
|
a585725c8b | ||
|
|
de0b4b9ece | ||
|
|
ad831af420 | ||
|
|
2ac8b4498f | ||
|
|
17e793242c | ||
|
|
e8f4fdfec7 | ||
|
|
d01ef000ba | ||
|
|
6969ae6af5 | ||
|
|
7c6c7df048 | ||
|
|
0ed324d155 | ||
|
|
72c193c336 | ||
|
|
e873f73dd6 | ||
|
|
f88270a385 | ||
|
|
dcaab46b46 | ||
|
|
cbdb218336 | ||
|
|
43d89d5ee5 | ||
|
|
4fcb1ce90b | ||
|
|
2e3fd84080 | ||
|
|
6662b9362e | ||
|
|
0c4e1654a1 | ||
|
|
c74b76e916 | ||
|
|
d39bdea68c | ||
|
|
e81e3750bc | ||
|
|
368fd2475a | ||
|
|
78b798ea79 | ||
|
|
0e5d21a75b | ||
|
|
ee126813a2 | ||
|
|
39f7ac7868 | ||
|
|
4c2f9f34f7 | ||
|
|
fab342311c | ||
|
|
f48646179b | ||
|
|
cfaaaf1a47 | ||
|
|
690ec77880 | ||
|
|
96df6db61e | ||
|
|
3c4d3b3836 | ||
|
|
ea36be4653 | ||
|
|
2c87efac07 | ||
|
|
383ae3ef8c | ||
|
|
8a00817999 | ||
|
|
bab8ddc2ca | ||
|
|
10268d2d6d | ||
|
|
d29a37e78a | ||
|
|
faaff05398 | ||
|
|
d5e42b8d57 | ||
|
|
40df4133f9 | ||
|
|
3a0bb833dc | ||
|
|
c0e7f7f7dc | ||
|
|
b9af250554 | ||
|
|
9db99178aa | ||
|
|
3768e4e756 | ||
|
|
63dddc9ecc | ||
|
|
2d842d6ac6 | ||
|
|
fbb83bff74 | ||
|
|
8dba8714d0 | ||
|
|
9b675bd55f |
@@ -1,3 +1,4 @@
|
||||
dist/
|
||||
lib/
|
||||
node_modules/
|
||||
node_modules/
|
||||
jest.config.js
|
||||
|
||||
117
.eslintrc.json
117
.eslintrc.json
@@ -1,57 +1,68 @@
|
||||
{
|
||||
"plugins": ["jest", "@typescript-eslint"],
|
||||
"extends": ["plugin:github/recommended"],
|
||||
"parser": "@typescript-eslint/parser",
|
||||
"parserOptions": {
|
||||
"ecmaVersion": 9,
|
||||
"sourceType": "module",
|
||||
"project": "./tsconfig.json"
|
||||
"plugins": ["import", "jest", "@typescript-eslint"],
|
||||
"extends": ["plugin:github/recommended"],
|
||||
"parser": "@typescript-eslint/parser",
|
||||
"parserOptions": {
|
||||
"ecmaVersion": 9,
|
||||
"sourceType": "module",
|
||||
"project": "./tsconfig.json"
|
||||
},
|
||||
"rules": {
|
||||
"i18n-text/no-en": "off",
|
||||
"eslint-comments/no-use": "off",
|
||||
"import/no-namespace": "off",
|
||||
"import/no-named-as-default": "off",
|
||||
"no-shadow": "off",
|
||||
"no-unused-vars": "off",
|
||||
"prefer-template": "off",
|
||||
"@typescript-eslint/no-unused-vars": ["error", {"varsIgnorePattern": "^_"}],
|
||||
"@typescript-eslint/explicit-member-accessibility": ["error", {"accessibility": "no-public"}],
|
||||
"@typescript-eslint/no-require-imports": "error",
|
||||
"@typescript-eslint/array-type": "error",
|
||||
"@typescript-eslint/await-thenable": "error",
|
||||
"@typescript-eslint/ban-ts-comment": "error",
|
||||
"camelcase": "off",
|
||||
"@typescript-eslint/consistent-type-assertions": "error",
|
||||
"@typescript-eslint/explicit-function-return-type": ["error", {"allowExpressions": true}],
|
||||
"@typescript-eslint/func-call-spacing": ["error", "never"],
|
||||
"@typescript-eslint/no-array-constructor": "error",
|
||||
"@typescript-eslint/no-empty-interface": "error",
|
||||
"@typescript-eslint/no-explicit-any": "error",
|
||||
"@typescript-eslint/no-extraneous-class": "error",
|
||||
"@typescript-eslint/no-for-in-array": "error",
|
||||
"@typescript-eslint/no-inferrable-types": "error",
|
||||
"@typescript-eslint/no-misused-new": "error",
|
||||
"@typescript-eslint/no-namespace": "error",
|
||||
"@typescript-eslint/no-non-null-assertion": "warn",
|
||||
"@typescript-eslint/no-unnecessary-qualifier": "error",
|
||||
"@typescript-eslint/no-unnecessary-type-assertion": "error",
|
||||
"@typescript-eslint/no-useless-constructor": "error",
|
||||
"@typescript-eslint/no-var-requires": "error",
|
||||
"@typescript-eslint/prefer-for-of": "warn",
|
||||
"@typescript-eslint/prefer-function-type": "warn",
|
||||
"@typescript-eslint/prefer-includes": "error",
|
||||
"@typescript-eslint/prefer-string-starts-ends-with": "error",
|
||||
"@typescript-eslint/promise-function-async": "error",
|
||||
"@typescript-eslint/require-array-sort-compare": "error",
|
||||
"@typescript-eslint/restrict-plus-operands": "error",
|
||||
"semi": "off",
|
||||
"@typescript-eslint/semi": ["error", "never"],
|
||||
"@typescript-eslint/type-annotation-spacing": "error",
|
||||
"@typescript-eslint/unbound-method": "error"
|
||||
},
|
||||
"env": {
|
||||
"node": true,
|
||||
"es6": true,
|
||||
"jest/globals": true
|
||||
},
|
||||
"settings": {
|
||||
"import/parsers": {
|
||||
"@typescript-eslint/parser": [".ts", ".tsx"]
|
||||
},
|
||||
"rules": {
|
||||
"camelcase": "off",
|
||||
"eslint-comments/no-use": "off",
|
||||
"import/no-namespace": "off",
|
||||
"no-shadow": "off",
|
||||
"no-unused-vars": "off",
|
||||
"prefer-template": "off",
|
||||
"semi": [ "error", "never"],
|
||||
"@typescript-eslint/explicit-member-accessibility": ["error", {"accessibility": "no-public"}],
|
||||
"@typescript-eslint/array-type": "error",
|
||||
"@typescript-eslint/await-thenable": "error",
|
||||
"@typescript-eslint/ban-ts-comment": "error",
|
||||
"@typescript-eslint/consistent-type-assertions": "error",
|
||||
"@typescript-eslint/explicit-function-return-type": ["error", {"allowExpressions": true}],
|
||||
"@typescript-eslint/func-call-spacing": ["error", "never"],
|
||||
"@typescript-eslint/no-array-constructor": "error",
|
||||
"@typescript-eslint/no-empty-interface": "error",
|
||||
"@typescript-eslint/no-explicit-any": "error",
|
||||
"@typescript-eslint/no-extraneous-class": "error",
|
||||
"@typescript-eslint/no-for-in-array": "error",
|
||||
"@typescript-eslint/no-inferrable-types": "error",
|
||||
"@typescript-eslint/no-misused-new": "error",
|
||||
"@typescript-eslint/no-namespace": "error",
|
||||
"@typescript-eslint/no-require-imports": "error",
|
||||
"@typescript-eslint/no-shadow": "error",
|
||||
"@typescript-eslint/no-non-null-assertion": "warn",
|
||||
"@typescript-eslint/no-unnecessary-qualifier": "error",
|
||||
"@typescript-eslint/no-unnecessary-type-assertion": "error",
|
||||
"@typescript-eslint/no-unused-vars": ["error", {"varsIgnorePattern": "^_"}],
|
||||
"@typescript-eslint/no-useless-constructor": "error",
|
||||
"@typescript-eslint/no-var-requires": "error",
|
||||
"@typescript-eslint/prefer-for-of": "warn",
|
||||
"@typescript-eslint/prefer-function-type": "warn",
|
||||
"@typescript-eslint/prefer-includes": "error",
|
||||
"@typescript-eslint/prefer-string-starts-ends-with": "error",
|
||||
"@typescript-eslint/promise-function-async": "error",
|
||||
"@typescript-eslint/require-array-sort-compare": "error",
|
||||
"@typescript-eslint/restrict-plus-operands": "error",
|
||||
"@typescript-eslint/semi": ["error", "never"],
|
||||
"@typescript-eslint/type-annotation-spacing": "error",
|
||||
"@typescript-eslint/unbound-method": "error"
|
||||
},
|
||||
"env": {
|
||||
"node": true,
|
||||
"es6": true,
|
||||
"jest/globals": true
|
||||
"import/resolver": {
|
||||
"typescript": {
|
||||
"alwaysTryTypes": true // always try to resolve types under `<root>@types` directory even it doesn't contain any source code, like `@types/unist`
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
26
.github/ISSUE_TEMPLATE/bug_report.md
vendored
Normal file
26
.github/ISSUE_TEMPLATE/bug_report.md
vendored
Normal file
@@ -0,0 +1,26 @@
|
||||
---
|
||||
name: Bug report
|
||||
about: Create a report to help us improve
|
||||
title: ''
|
||||
labels: 'bug'
|
||||
assignees: 'dorny,dharmendrasha'
|
||||
---
|
||||
|
||||
## Describe the bug
|
||||
A clear and concise description of what the bug is.
|
||||
|
||||
## To Reproduce
|
||||
Steps to reproduce the behavior:
|
||||
1. Go to '...'
|
||||
2. Click on '....'
|
||||
3. Scroll down to '....'
|
||||
4. See error
|
||||
|
||||
## Expected behavior
|
||||
A clear and concise description of what you expected to happen.
|
||||
|
||||
## Screenshots
|
||||
If applicable, add screenshots to help explain your problem.
|
||||
|
||||
## Additional context
|
||||
Add any other context about the problem here.
|
||||
13
.github/ISSUE_TEMPLATE/feature.md
vendored
Normal file
13
.github/ISSUE_TEMPLATE/feature.md
vendored
Normal file
@@ -0,0 +1,13 @@
|
||||
---
|
||||
name: Feature Request
|
||||
about: Suggest a feature
|
||||
title: ''
|
||||
labels: 'enhancement'
|
||||
assignees: 'dorny,dharmendrasha'
|
||||
---
|
||||
|
||||
## Describe
|
||||
|
||||
## Proposed solution
|
||||
|
||||
## Alternatives considered
|
||||
15
.github/dependabot.yml
vendored
15
.github/dependabot.yml
vendored
@@ -1,11 +1,10 @@
|
||||
version: 2
|
||||
updates:
|
||||
# Enable version updates for npm
|
||||
- package-ecosystem: 'npm'
|
||||
# Look for `package.json` and `lock` files in the `root` directory
|
||||
directory: '/'
|
||||
# Check the npm registry for updates every day (weekdays)
|
||||
- package-ecosystem: "npm"
|
||||
directory: "/"
|
||||
schedule:
|
||||
interval: 'monthly'
|
||||
ignore:
|
||||
- dependency-name: '@types/node'
|
||||
interval: "daily"
|
||||
- package-ecosystem: "github-actions"
|
||||
directory: "/"
|
||||
schedule:
|
||||
interval: "daily"
|
||||
|
||||
53
.github/workflows/check-dist.yml
vendored
Normal file
53
.github/workflows/check-dist.yml
vendored
Normal file
@@ -0,0 +1,53 @@
|
||||
# `dist/index.js` is a special file in Actions.
|
||||
# When you reference an action with `uses:` in a workflow,
|
||||
# `index.js` is the code that will run.
|
||||
# For our project, we generate this file through a build process from other source files.
|
||||
# We need to make sure the checked-in `index.js` actually matches what we expect it to be.
|
||||
name: Check dist/
|
||||
|
||||
on:
|
||||
push:
|
||||
branches:
|
||||
- main
|
||||
paths-ignore:
|
||||
- '**.md'
|
||||
pull_request:
|
||||
paths-ignore:
|
||||
- '**.md'
|
||||
workflow_dispatch:
|
||||
|
||||
jobs:
|
||||
check-dist:
|
||||
runs-on: ubuntu-latest
|
||||
|
||||
steps:
|
||||
- uses: actions/checkout@v6
|
||||
|
||||
- name: Set Node.js
|
||||
uses: actions/setup-node@v6
|
||||
with:
|
||||
node-version-file: '.nvmrc'
|
||||
|
||||
- name: Install dependencies
|
||||
run: npm ci
|
||||
|
||||
- name: Rebuild the dist/ directory
|
||||
run: |
|
||||
npm run build
|
||||
npm run package
|
||||
|
||||
- name: Compare the expected and actual dist/ directories
|
||||
run: |
|
||||
if [ "$(git diff --ignore-space-at-eol dist/ | wc -l)" -gt "0" ]; then
|
||||
echo "Detected uncommitted changes after build. See status below:"
|
||||
git diff
|
||||
exit 1
|
||||
fi
|
||||
id: diff
|
||||
|
||||
# If index.js was different than expected, upload the expected version as an artifact
|
||||
- uses: actions/upload-artifact@v6
|
||||
if: ${{ failure() && steps.diff.conclusion == 'failure' }}
|
||||
with:
|
||||
name: dist
|
||||
path: dist/
|
||||
16
.github/workflows/ci.yml
vendored
16
.github/workflows/ci.yml
vendored
@@ -13,7 +13,10 @@ jobs:
|
||||
name: Build & Test
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- uses: actions/checkout@v2
|
||||
- uses: actions/checkout@v6
|
||||
- uses: actions/setup-node@v6
|
||||
with:
|
||||
node-version-file: '.nvmrc'
|
||||
- run: npm ci
|
||||
- run: npm run build
|
||||
- run: npm run format-check
|
||||
@@ -21,15 +24,8 @@ jobs:
|
||||
- run: npm test
|
||||
|
||||
- name: Upload test results
|
||||
uses: actions/upload-artifact@v2
|
||||
if: ${{ !cancelled() }}
|
||||
uses: actions/upload-artifact@v6
|
||||
with:
|
||||
name: test-results
|
||||
path: __tests__/__results__/*.xml
|
||||
|
||||
- name: Create test report
|
||||
uses: ./
|
||||
if: success() || failure()
|
||||
with:
|
||||
name: JEST Tests
|
||||
path: __tests__/__results__/*.xml
|
||||
reporter: jest-junit
|
||||
|
||||
22
.github/workflows/manual-run.yml
vendored
Normal file
22
.github/workflows/manual-run.yml
vendored
Normal file
@@ -0,0 +1,22 @@
|
||||
name: Manual run
|
||||
|
||||
on:
|
||||
workflow_dispatch:
|
||||
|
||||
jobs:
|
||||
check-dist:
|
||||
runs-on: ubuntu-latest
|
||||
|
||||
steps:
|
||||
- uses: actions/checkout@v6
|
||||
- run: npm ci
|
||||
- run: npm run build
|
||||
- run: npm test
|
||||
|
||||
- name: Create test report
|
||||
uses: ./
|
||||
if: ${{ !cancelled() }}
|
||||
with:
|
||||
name: JEST Tests
|
||||
path: __tests__/__results__/*.xml
|
||||
reporter: jest-junit
|
||||
2
.github/workflows/test-report.yml
vendored
2
.github/workflows/test-report.yml
vendored
@@ -11,7 +11,7 @@ jobs:
|
||||
name: Workflow test
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- uses: actions/checkout@v2
|
||||
- uses: actions/checkout@v6
|
||||
- uses: ./
|
||||
with:
|
||||
artifact: test-results
|
||||
|
||||
2
.gitignore
vendored
2
.gitignore
vendored
@@ -100,3 +100,5 @@ lib/**/*
|
||||
|
||||
# Project specific
|
||||
__tests__/__results__
|
||||
|
||||
.idea
|
||||
|
||||
13
.markdownlint.json
Normal file
13
.markdownlint.json
Normal file
@@ -0,0 +1,13 @@
|
||||
{
|
||||
"blanks-around-headings": false,
|
||||
"blanks-around-lists": false,
|
||||
"blanks-around-tables": false,
|
||||
"blanks-around-fences": false,
|
||||
"no-bare-urls": false,
|
||||
"line-length": false,
|
||||
"ul-style": false,
|
||||
"no-inline-html": false,
|
||||
"no-multiple-blanks": {
|
||||
"maximum": 3
|
||||
}
|
||||
}
|
||||
121
CHANGELOG.md
121
CHANGELOG.md
@@ -1,5 +1,126 @@
|
||||
# Changelog
|
||||
|
||||
## 2.5.0
|
||||
* Feature: Add Nette Tester support with `tester-junit` reporter https://github.com/dorny/test-reporter/pull/707
|
||||
* Maintenance: Bump actions/upload-artifact from 5 to 6 https://github.com/dorny/test-reporter/pull/695
|
||||
|
||||
## 2.4.0
|
||||
* Feature: Add PHPUnit support with JUnit XML dialect parser https://github.com/dorny/test-reporter/pull/422
|
||||
* Feature: Add JUnit XML sample files and tests for validation https://github.com/dorny/test-reporter/pull/701
|
||||
* Fix: Refactor deprecated `String.substr()` function to use `String.substring()` https://github.com/dorny/test-reporter/pull/704
|
||||
|
||||
## 2.3.0
|
||||
* Feature: Add Python support with `python-xunit` reporter (pytest) https://github.com/dorny/test-reporter/pull/643
|
||||
* Feature: Add pytest traceback parsing and `directory-mapping` option https://github.com/dorny/test-reporter/pull/238
|
||||
* Performance: Update sax.js to fix large XML file parsing https://github.com/dorny/test-reporter/pull/681
|
||||
* Documentation: Complete documentation for all supported reporters https://github.com/dorny/test-reporter/pull/691
|
||||
* Security: Bump js-yaml and mocha in /reports/mocha (fixes prototype pollution) https://github.com/dorny/test-reporter/pull/682
|
||||
|
||||
## 2.2.0
|
||||
* Feature: Add collapsed option to control report summary visibility https://github.com/dorny/test-reporter/pull/664
|
||||
* Fix badge encoding for values including underscore and hyphens https://github.com/dorny/test-reporter/pull/672
|
||||
* Fix missing `report-title` attribute in action definition https://github.com/dorny/test-reporter/pull/637
|
||||
* Refactor variable names to fix shadowing issues https://github.com/dorny/test-reporter/pull/630
|
||||
|
||||
## 2.1.1
|
||||
* Fix error when a TestMethod element does not have a className attribute in a trx file https://github.com/dorny/test-reporter/pull/623
|
||||
* Add stack trace from trx to summary https://github.com/dorny/test-reporter/pull/615
|
||||
* List only failed tests https://github.com/dorny/test-reporter/pull/606
|
||||
* Add type definitions to `github-utils.ts` https://github.com/dorny/test-reporter/pull/604
|
||||
* Avoid split on undefined https://github.com/dorny/test-reporter/pull/258
|
||||
* Return links to summary report https://github.com/dorny/test-reporter/pull/588
|
||||
* Add step summary short summary https://github.com/dorny/test-reporter/pull/589
|
||||
* Fix for empty TRX TestDefinitions https://github.com/dorny/test-reporter/pull/582
|
||||
* Increase step summary limit to 1MiB https://github.com/dorny/test-reporter/pull/581
|
||||
* Fix input description for list options https://github.com/dorny/test-reporter/pull/572
|
||||
|
||||
## 2.1.0
|
||||
* Feature: Add summary title https://github.com/dorny/test-reporter/pull/568
|
||||
* Feature: Add Golang test parser https://github.com/dorny/test-reporter/pull/571
|
||||
* Increase step summary limit to 1MiB https://github.com/dorny/test-reporter/pull/581
|
||||
* Fix for empty TRX TestDefinitions https://github.com/dorny/test-reporter/pull/582
|
||||
* Fix input description for list options https://github.com/dorny/test-reporter/pull/572
|
||||
* Update npm packages https://github.com/dorny/test-reporter/pull/583
|
||||
|
||||
## 2.0.0
|
||||
* Parse JUnit report with detailed message in failure https://github.com/dorny/test-reporter/pull/559
|
||||
* Support displaying test results in markdown using GitHub Actions Job Summaries https://github.com/dorny/test-reporter/pull/383
|
||||
|
||||
## 1.9.1
|
||||
* Fix problematic retransmission of authentication token https://github.com/dorny/test-reporter/pull/438
|
||||
* Report correct number of tests in Dart https://github.com/dorny/test-reporter/pull/426
|
||||
* Number of completed tests mismatches passed/failed https://github.com/dorny/test-reporter/issues/319
|
||||
|
||||
## 1.9.0
|
||||
* Add support for Rspec (Ruby) https://github.com/dorny/test-reporter/pull/398
|
||||
|
||||
## 1.8.0
|
||||
* Add `SwiftXunitParser` class based on `JavaJunitParser` for `swift-xunit` reporter https://github.com/dorny/test-reporter/pull/317
|
||||
* Use NodeJS 18 LTS as default runtime https://github.com/dorny/test-reporter/pull/332
|
||||
* Escape `<>` characters in suite name https://github.com/dorny/test-reporter/pull/236
|
||||
* Update actions runtime to Node20 https://github.com/dorny/test-reporter/pull/315
|
||||
* Update check title and remove icon https://github.com/dorny/test-reporter/pull/144
|
||||
|
||||
## 1.7.0
|
||||
* Fix #199: Use ✅ instead of ✔️ for better cross platform look by @petrdvorak in https://github.com/dorny/test-reporter/pull/200
|
||||
* Verify content of dist/ folder matches build output by @dorny in https://github.com/dorny/test-reporter/pull/207
|
||||
* Gracefully handle empty nested testsuite elements for JUnit. by @rvdlaarschot in https://github.com/dorny/test-reporter/pull/193
|
||||
* Gracefully handle empty failure tags by @haudren-woven in https://github.com/dorny/test-reporter/pull/213
|
||||
* Fix #208 - java-junit: show annotations on PR changed files by @atsu85 in https://github.com/dorny/test-reporter/pull/209
|
||||
* Only report failure if fail-on-error is set by @trond-snekvik in https://github.com/dorny/test-reporter/pull/214
|
||||
* Improve clarity on configuring for forkable repos by @abelbraaksma in https://github.com/dorny/test-reporter/pull/211
|
||||
* Suppress "Processing test results from" log by @vasanthdharmaraj in https://github.com/dorny/test-reporter/pull/179
|
||||
* Skip listing of files if error parsing is disabled by @dorny in https://github.com/dorny/test-reporter/pull/216
|
||||
* Correct typo in docs by @tangowithfoxtrot in https://github.com/dorny/test-reporter/pull/254
|
||||
* update dependencies by @j-catania in https://github.com/dorny/test-reporter/pull/269
|
||||
* Add permissions to example yml files by @TurnrDev in https://github.com/dorny/test-reporter/pull/263
|
||||
* add feature fail-on-empty by @gdams in https://github.com/dorny/test-reporter/pull/243
|
||||
* Add dependabot configuration by @yeikel in https://github.com/dorny/test-reporter/pull/228
|
||||
* Bump ws from 7.3.1 to 7.5.9 in /reports/jest by @dependabot in https://github.com/dorny/test-reporter/pull/265
|
||||
* Bump actions/checkout from 2 to 4 by @dependabot in https://github.com/dorny/test-reporter/pull/279
|
||||
* Add new output for url url html by @luisito666 in https://github.com/dorny/test-reporter/pull/242
|
||||
* Update README.md by @IanMoroney in https://github.com/dorny/test-reporter/pull/158
|
||||
* Update jest-Junit part of Readme by @ryancasburn-KAI in https://github.com/dorny/test-reporter/pull/176
|
||||
* fix: default-valued fields are not mandatory by @TomerFi in https://github.com/dorny/test-reporter/pull/172
|
||||
* Bump ansi-regex from 4.1.0 to 4.1.1 in /reports/jest by @dependabot in https://github.com/dorny/test-reporter/pull/278
|
||||
* Bump decode-uri-component from 0.2.0 to 0.2.2 in /reports/jest by @dependabot in https://github.com/dorny/test-reporter/pull/276
|
||||
* Bump minimist from 1.2.5 to 1.2.8 in /reports/jest by @dependabot in https://github.com/dorny/test-reporter/pull/275
|
||||
* Bump qs from 6.5.2 to 6.5.3 in /reports/jest by @dependabot in https://github.com/dorny/test-reporter/pull/272
|
||||
* Bump json5 from 2.1.3 to 2.2.3 in /reports/jest by @dependabot in https://github.com/dorny/test-reporter/pull/271
|
||||
* Bump ansi-regex from 3.0.0 to 3.0.1 in /reports/mocha by @dependabot in https://github.com/dorny/test-reporter/pull/270
|
||||
* declare 'url' and 'url_html' as action outputs by @micha-one in https://github.com/dorny/test-reporter/pull/287
|
||||
* Avoid split on undefined by @cazou in https://github.com/dorny/test-reporter/pull/258
|
||||
|
||||
## v1.6.0
|
||||
- [Update to node16 + recent versions of core and exec packages](https://github.com/dorny/test-reporter/pull/203)
|
||||
- [Update all dependencies to latest versions](https://github.com/dorny/test-reporter/pull/186)
|
||||
- [Fix tests on non us-EN local env](https://github.com/dorny/test-reporter/pull/185)
|
||||
|
||||
## v1.5.0
|
||||
- [Add option to convert backslashes in path pattern to forward slashes](https://github.com/dorny/test-reporter/pull/128)
|
||||
- [Add option to generate only the summary from processed test results files](https://github.com/dorny/test-reporter/pull/123)
|
||||
|
||||
## v1.4.3
|
||||
- [Patch java-junit to handle missing time field](https://github.com/dorny/test-reporter/pull/115)
|
||||
- [Fix dart-json parsing broken by print message](https://github.com/dorny/test-reporter/pull/114)
|
||||
|
||||
## v1.4.2
|
||||
- [Fix dotnet-trx parsing of passed tests with non-empty error info](https://github.com/dorny/test-reporter/commit/43d89d5ee509bcef7bd0287aacc0c4a4fb9c1657)
|
||||
|
||||
## v1.4.1
|
||||
- [Fix dotnet-trx parsing of tests with custom display names](https://github.com/dorny/test-reporter/pull/105)
|
||||
|
||||
## v1.4.0
|
||||
- [Add support for mocha-json](https://github.com/dorny/test-reporter/pull/90)
|
||||
- [Use full URL to fix navigation from summary to suite details](https://github.com/dorny/test-reporter/pull/89)
|
||||
- [New report rendering with code blocks instead of tables](https://github.com/dorny/test-reporter/pull/88)
|
||||
- [Improve test error messages from flutter](https://github.com/dorny/test-reporter/pull/87)
|
||||
|
||||
## v1.3.1
|
||||
- [Fix: parsing of .NET duration string without milliseconds](https://github.com/dorny/test-reporter/pull/84)
|
||||
- [Fix: dart-json - remove group name from test case names](https://github.com/dorny/test-reporter/pull/85)
|
||||
- [Fix: net-trx parser crashing on missing duration attribute](https://github.com/dorny/test-reporter/pull/86)
|
||||
|
||||
## v1.3.0
|
||||
- [Add support for java-junit](https://github.com/dorny/test-reporter/pull/80)
|
||||
- [Fix: Handle test reports with no test cases](https://github.com/dorny/test-reporter/pull/70)
|
||||
|
||||
233
README.md
233
README.md
@@ -2,22 +2,27 @@
|
||||
|
||||
This [Github Action](https://github.com/features/actions) displays test results from popular testing frameworks directly in GitHub.
|
||||
|
||||
✔️ Parses test results in XML or JSON format and creates nice report as Github Check Run
|
||||
✔️ Parses test results in XML or JSON format and creates nice report as GitHub Check Run or GitHub Actions job summaries
|
||||
|
||||
✔️ Annotates code where it failed based on message and stack trace captured during test execution
|
||||
|
||||
✔️ Provides final `conclusion` and counts of `passed`, `failed` and `skipped` tests as output parameters
|
||||
|
||||
**How it looks:**
|
||||
|||||
|
||||
|||||
|
||||
|:--:|:--:|:--:|:--:|
|
||||
|
||||
**Supported languages / frameworks:**
|
||||
- .NET / [xUnit](https://xunit.net/) / [NUnit](https://nunit.org/) / [MSTest](https://github.com/Microsoft/testfx-docs)
|
||||
- .NET / [dotnet test](https://docs.microsoft.com/en-us/dotnet/core/tools/dotnet-test#examples) ( [xUnit](https://xunit.net/) / [NUnit](https://nunit.org/) / [MSTest](https://github.com/Microsoft/testfx-docs) )
|
||||
- Dart / [test](https://pub.dev/packages/test)
|
||||
- Flutter / [test](https://pub.dev/packages/test)
|
||||
- JavaScript / [JEST](https://jestjs.io/)
|
||||
- Go / [go test](https://pkg.go.dev/testing)
|
||||
- Java / [JUnit](https://junit.org/)
|
||||
- JavaScript / [JEST](https://jestjs.io/) / [Mocha](https://mochajs.org/)
|
||||
- Python / [pytest](https://docs.pytest.org/en/stable/) / [unittest](https://docs.python.org/3/library/unittest.html)
|
||||
- PHP / [PHPUnit](https://phpunit.de/) / [Nette Tester](https://tester.nette.org/)
|
||||
- Ruby / [RSpec](https://rspec.info/)
|
||||
- Swift / xUnit
|
||||
|
||||
For more information see [Supported formats](#supported-formats) section.
|
||||
|
||||
@@ -33,18 +38,22 @@ If that's fine for you, using this action is as simple as:
|
||||
on:
|
||||
pull_request:
|
||||
push:
|
||||
permissions:
|
||||
contents: read
|
||||
actions: read
|
||||
checks: write
|
||||
jobs:
|
||||
build-test:
|
||||
name: Build & Test
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- uses: actions/checkout@v2 # checkout the repo
|
||||
- uses: actions/checkout@v4 # checkout the repo
|
||||
- run: npm ci # install packages
|
||||
- run: npm test # run tests (configured to use jest-junit reporter)
|
||||
|
||||
- name: Test Report
|
||||
uses: dorny/test-reporter@v1
|
||||
if: success() || failure() # run this step even if previous step failed
|
||||
uses: dorny/test-reporter@v2
|
||||
if: ${{ !cancelled() }} # run this step even if previous step failed
|
||||
with:
|
||||
name: JEST Tests # Name of the check run which will be created
|
||||
path: reports/jest-*.xml # Path to test results
|
||||
@@ -54,9 +63,11 @@ jobs:
|
||||
## Recommended setup for public repositories
|
||||
|
||||
Workflows triggered by pull requests from forked repositories are executed with read-only token and therefore can't create check runs.
|
||||
To workaround this security restriction it's required to use two separate workflows:
|
||||
1. `CI` runs in the context of PR head branch with read-only token. It executes the tests and uploads test results as build artifact
|
||||
2. `Test Report` runs in the context of repository main branch with read/write token. It will download test results and create reports
|
||||
To workaround this security restriction, it's required to use two separate workflows:
|
||||
1. `CI` runs in the context of the PR head branch with the read-only token. It executes the tests and uploads test results as a build artifact
|
||||
2. `Test Report` runs in the context of the repository main branch with read/write token. It will download test results and create reports
|
||||
|
||||
The second workflow will only run after it has been merged into your default branch (typically `main` or `master`), it won't run in a PR unless after the workflow file is part of that branch.
|
||||
|
||||
**PR head branch:** *.github/workflows/ci.yml*
|
||||
```yaml
|
||||
@@ -67,11 +78,11 @@ jobs:
|
||||
build-test:
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- uses: actions/checkout@v2 # checkout the repo
|
||||
- uses: actions/checkout@v4 # checkout the repo
|
||||
- run: npm ci # install packages
|
||||
- run: npm test # run tests (configured to use jest-junit reporter)
|
||||
- uses: actions/upload-artifact@v2 # upload test results
|
||||
if: success() || failure() # run this step even if previous step failed
|
||||
- uses: actions/upload-artifact@v4 # upload test results
|
||||
if: ${{ !cancelled() }} # run this step even if previous step failed
|
||||
with:
|
||||
name: test-results
|
||||
path: jest-junit.xml
|
||||
@@ -84,11 +95,15 @@ on:
|
||||
workflows: ['CI'] # runs after CI workflow
|
||||
types:
|
||||
- completed
|
||||
permissions:
|
||||
contents: read
|
||||
actions: read
|
||||
checks: write
|
||||
jobs:
|
||||
report:
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- uses: dorny/test-reporter@v1
|
||||
- uses: dorny/test-reporter@v2
|
||||
with:
|
||||
artifact: test-results # artifact name
|
||||
name: JEST Tests # Name of the check run which will be created
|
||||
@@ -99,7 +114,7 @@ jobs:
|
||||
## Usage
|
||||
|
||||
```yaml
|
||||
- uses: dorny/test-reporter@v1
|
||||
- uses: dorny/test-reporter@v2
|
||||
with:
|
||||
|
||||
# Name or regex of artifact containing test results
|
||||
@@ -114,22 +129,53 @@ jobs:
|
||||
# Name of the Check Run which will be created
|
||||
name: ''
|
||||
|
||||
# Coma separated list of paths to test results
|
||||
# Comma-separated list of paths to test results
|
||||
# Supports wildcards via [fast-glob](https://github.com/mrmlnc/fast-glob)
|
||||
# All matched result files must be of same format
|
||||
# All matched result files must be of the same format
|
||||
path: ''
|
||||
|
||||
# The fast-glob library that is internally used interprets backslashes as escape characters.
|
||||
# If enabled, all backslashes in provided path will be replaced by forward slashes and act as directory separators.
|
||||
# It might be useful when path input variable is composed dynamically from existing directory paths on Windows.
|
||||
path-replace-backslashes: 'false'
|
||||
|
||||
# Format of test results. Supported options:
|
||||
# dart-json
|
||||
# dotnet-nunit
|
||||
# dotnet-trx
|
||||
# flutter-json
|
||||
# golang-json
|
||||
# java-junit
|
||||
# jest-junit
|
||||
# mocha-json
|
||||
# phpunit-junit
|
||||
# python-xunit
|
||||
# rspec-json
|
||||
# swift-xunit
|
||||
reporter: ''
|
||||
|
||||
# Allows you to generate only the summary.
|
||||
# If enabled, the report will contain a table listing each test results file and the number of passed, failed, and skipped tests.
|
||||
# Detailed listing of test suites and test cases will be skipped.
|
||||
only-summary: 'false'
|
||||
|
||||
# Allows you to generate reports for Actions Summary
|
||||
# https://github.blog/2022-05-09-supercharging-github-actions-with-job-summaries/
|
||||
use-actions-summary: 'true'
|
||||
|
||||
# Optionally specify a title (Heading level 1) for the report. Leading and trailing whitespace are ignored.
|
||||
# This is useful for separating your test report from other sections in the build summary.
|
||||
# If omitted or set to whitespace/empty, no title will be printed.
|
||||
report-title: ''
|
||||
|
||||
# Customize the title of badges shown for each Actions Summary.
|
||||
# Useful when distinguish summaries for tests ran in multiple Actions steps.
|
||||
badge-title: 'tests'
|
||||
|
||||
# Limits which test suites are listed:
|
||||
# all
|
||||
# failed
|
||||
# none
|
||||
list-suites: 'all'
|
||||
|
||||
# Limits which test cases are listed:
|
||||
@@ -142,9 +188,12 @@ jobs:
|
||||
# Must be less or equal to 50.
|
||||
max-annotations: '10'
|
||||
|
||||
# Set action as failed if test report contain any failed test
|
||||
# Set action as failed if test report contains any failed test
|
||||
fail-on-error: 'true'
|
||||
|
||||
# Set this action as failed if no test results were found
|
||||
fail-on-empty: 'true'
|
||||
|
||||
# Relative path under $GITHUB_WORKSPACE where the repository was checked out.
|
||||
working-directory: ''
|
||||
|
||||
@@ -161,6 +210,8 @@ jobs:
|
||||
| failed | Count of failed tests |
|
||||
| skipped | Count of skipped tests |
|
||||
| time | Test execution time [ms] |
|
||||
| url | Check run URL |
|
||||
| url_html | Check run URL HTML |
|
||||
|
||||
## Supported formats
|
||||
|
||||
@@ -208,6 +259,20 @@ Supported testing frameworks:
|
||||
For more information see [dotnet test](https://docs.microsoft.com/en-us/dotnet/core/tools/dotnet-test#examples)
|
||||
</details>
|
||||
|
||||
<details>
|
||||
<summary>dotnet-nunit</summary>
|
||||
|
||||
Test execution must be configured to generate [NUnit3](https://docs.nunit.org/articles/nunit/technical-notes/usage/Test-Result-XML-Format.html) XML test results.
|
||||
Install the [NUnit3TestAdapter](https://www.nuget.org/packages/NUnit3TestAdapter) package (required; it registers the `nunit` logger for `dotnet test`), then run tests with:
|
||||
|
||||
`dotnet test --logger "nunit;LogFileName=test-results.xml"`
|
||||
|
||||
Supported testing frameworks:
|
||||
- [NUnit](https://nunit.org/)
|
||||
|
||||
For more information see [dotnet test](https://docs.microsoft.com/en-us/dotnet/core/tools/dotnet-test#examples)
|
||||
</details>
|
||||
|
||||
<details>
|
||||
<summary>flutter-json</summary>
|
||||
|
||||
@@ -224,8 +289,8 @@ Or with (undocumented) CLI argument:
|
||||
|
||||
|
||||
According to documentation `dart_test.yaml` should be at the root of the package, next to the package's pubspec.
|
||||
On current `stable` and `beta` channels it doesn't work and you have to put `dart_test.yaml` inside your `test` folder.
|
||||
On `dev` channel it's already fixed.
|
||||
On current `stable` and `beta` channels it doesn't work, and you have to put `dart_test.yaml` inside your `test` folder.
|
||||
On `dev` channel, it's already fixed.
|
||||
|
||||
For more information see:
|
||||
- [test package](https://pub.dev/packages/test)
|
||||
@@ -236,23 +301,51 @@ For more information see:
|
||||
</details>
|
||||
|
||||
<details>
|
||||
<summary>java-junit (Experimental)</summary>
|
||||
<summary>golang-json</summary>
|
||||
|
||||
You must use the `-json` flag and output the results to a file (ex: `go test -json > testresults.json`)
|
||||
|
||||
Support for [JUnit](https://Junit.org/) XML is experimental - should work but it was not extensively tested.
|
||||
To have code annotations working properly it's required your directory structure matches package name.
|
||||
This is due to the fact Java stacktraces doesn't contains full path to the source file.
|
||||
Some heuristic was necessary to figure out mapping between line in stack trace and actual source file.
|
||||
</details>
|
||||
|
||||
<details>
|
||||
<summary>jest-Junit</summary>
|
||||
<summary>java-junit (Experimental)</summary>
|
||||
|
||||
[JEST](https://jestjs.io/) testing framework support requires usage of [jest-Junit](https://github.com/jest-community/jest-Junit) reporter.
|
||||
Support for [JUnit](https://Junit.org/) XML is experimental - should work but it was not extensively tested.
|
||||
To have code annotations working properly, it's required your directory structure matches the package name.
|
||||
This is due to the fact Java stack traces don't contain a full path to the source file.
|
||||
Some heuristic was necessary to figure out the mapping between the line in the stack trace and an actual source file.
|
||||
</details>
|
||||
|
||||
<details>
|
||||
<summary>phpunit-junit</summary>
|
||||
|
||||
[PHPUnit](https://phpunit.de/) can generate JUnit XML via CLI:
|
||||
`phpunit --log-junit reports/phpunit-junit.xml`
|
||||
|
||||
</details>
|
||||
|
||||
<details>
|
||||
<summary>tester-junit</summary>
|
||||
|
||||
[Nette Tester](https://tester.nette.org/) can generate JUnit XML via CLI:
|
||||
|
||||
```bash
|
||||
tester -s -o junit tests/ > reports/tester-junit.xml
|
||||
```
|
||||
|
||||
**Note:** Nette Tester's JUnit output doesn't include test suite names. The parser will use the report file name as the suite name and automatically group tests by directory structure.
|
||||
|
||||
</details>
|
||||
|
||||
<details>
|
||||
<summary>jest-junit</summary>
|
||||
|
||||
[JEST](https://jestjs.io/) testing framework support requires the usage of [jest-junit](https://github.com/jest-community/jest-junit) reporter.
|
||||
It will create test results in Junit XML format which can be then processed by this action.
|
||||
You can use following example configuration in `package.json`:
|
||||
You can use the following example configuration in `package.json`:
|
||||
```json
|
||||
"scripts": {
|
||||
"test": "jest --ci --reporters=default --reporters=jest-Junit"
|
||||
"test": "jest --ci --reporters=default --reporters=jest-junit"
|
||||
},
|
||||
"devDependencies": {
|
||||
"jest": "^26.5.3",
|
||||
@@ -272,20 +365,86 @@ You can use following example configuration in `package.json`:
|
||||
Configuration of `uniqueOutputName`, `suiteNameTemplate`, `classNameTemplate`, `titleTemplate` is important for proper visualization of test results.
|
||||
</details>
|
||||
|
||||
<details>
|
||||
<summary>mocha-json</summary>
|
||||
|
||||
[Mocha](https://mochajs.org/) testing framework support requires:
|
||||
- Mocha version [v7.2.0](https://github.com/mochajs/mocha/releases/tag/v7.2.0) or higher
|
||||
- Usage of [json](https://mochajs.org/#json) reporter.
|
||||
|
||||
For Mocha >= [v9.1.0](https://github.com/mochajs/mocha/releases/tag/v9.1.0), you can use the following example configuration in `package.json`:
|
||||
```json
|
||||
"scripts": {
|
||||
"test": "mocha --reporter json --reporter-option output=test-results.json"
|
||||
}
|
||||
```
|
||||
|
||||
For Mocha < v9.1, the command should look like this:
|
||||
```json
|
||||
"scripts": {
|
||||
"test": "mocha --reporter json > test-results.json"
|
||||
}
|
||||
```
|
||||
Additionally, test processing might fail if any of your tests write anything on standard output.
|
||||
Before version [v9.1.0](https://github.com/mochajs/mocha/releases/tag/v9.1.0), Mocha doesn't have the option to store `json` output directly to the file, and we have to rely on redirecting its standard output ([mocha#4607](https://github.com/mochajs/mocha/pull/4607)).
|
||||
Please update Mocha to version [v9.1.0](https://github.com/mochajs/mocha/releases/tag/v9.1.0) or above if you encounter this issue.
|
||||
</details>
|
||||
|
||||
<details>
|
||||
<summary>python-xunit (Experimental)</summary>
|
||||
|
||||
Support for Python test results in xUnit format is experimental - should work but it was not extensively tested.
|
||||
|
||||
For **pytest** support, configure [JUnit XML output](https://docs.pytest.org/en/stable/how-to/output.html#creating-junitxml-format-files) and run with the `--junit-xml` option, which also lets you specify the output path for test results.
|
||||
|
||||
```shell
|
||||
pytest --junit-xml=test-report.xml
|
||||
```
|
||||
|
||||
For **unittest** support, use a test runner that outputs the JUnit report format, such as [unittest-xml-reporting](https://pypi.org/project/unittest-xml-reporting/).
|
||||
</details>
|
||||
|
||||
<details>
|
||||
<summary>rspec-json</summary>
|
||||
|
||||
[RSpec](https://rspec.info/) testing framework support requires the usage of JSON formatter.
|
||||
You can configure RSpec to output JSON format by using the `--format json` option and redirecting to a file:
|
||||
|
||||
```shell
|
||||
rspec --format json --out rspec-results.json
|
||||
```
|
||||
|
||||
Or configure it in `.rspec` file:
|
||||
```
|
||||
--format json
|
||||
--out rspec-results.json
|
||||
```
|
||||
|
||||
For more information see:
|
||||
- [RSpec documentation](https://rspec.info/)
|
||||
- [RSpec Formatters](https://relishapp.com/rspec/rspec-core/docs/formatters)
|
||||
</details>
|
||||
|
||||
<details>
|
||||
<summary>swift-xunit (Experimental)</summary>
|
||||
|
||||
Support for Swift test results in xUnit format is experimental - should work but it was not extensively tested.
|
||||
</details>
|
||||
|
||||
## GitHub limitations
|
||||
|
||||
Unfortunately there are some known issues and limitations caused by GitHub API:
|
||||
Unfortunately, there are some known issues and limitations caused by GitHub API:
|
||||
|
||||
- Test report (i.e. Check Run summary) is markdown text. No custom styling or HTML is possible.
|
||||
- Test report (i.e. build summary) is Markdown text. No custom styling or HTML is possible.
|
||||
- Maximum report size is 65535 bytes. Input parameters `list-suites` and `list-tests` will be automatically adjusted if max size is exceeded.
|
||||
- Test report can't reference any additional files (e.g. screenshots). You can use `actions/upload-artifact@v2` to upload them and inspect manually.
|
||||
- Check Runs are created for specific commit SHA. it's not possible to specify under which workflow test report should belong if there are more
|
||||
workflows running for same SHA. Thanks to this GitHub "feature" it's possible your test report will appear in unexpected place in GitHub UI.
|
||||
For more information see [#67](https://github.com/dorny/test-reporter/issues/67).
|
||||
- Test report can't reference any additional files (e.g. screenshots). You can use `actions/upload-artifact@v4` to upload them and inspect them manually.
|
||||
- Check Runs are created for specific commit SHA. It's not possible to specify under which workflow test report should belong if more
|
||||
workflows are running for the same SHA. Thanks to this GitHub "feature" it's possible your test report will appear in an unexpected place in GitHub UI.
|
||||
For more information, see [#67](https://github.com/dorny/test-reporter/issues/67).
|
||||
|
||||
## See also
|
||||
- [paths-filter](https://github.com/dorny/paths-filter) - Conditionally run actions based on files modified by PR, feature branch or pushed commits
|
||||
- [paths-filter](https://github.com/dorny/paths-filter) - Conditionally run actions based on files modified by PR, feature branch, or pushed commits
|
||||
|
||||
## License
|
||||
|
||||
The scripts and documentation in this project are released under the [MIT License](https://github.com/dorny/test-reporter/blob/master/LICENSE)
|
||||
The scripts and documentation in this project are released under the [MIT License](https://github.com/dorny/test-reporter/blob/main/LICENSE)
|
||||
|
||||
@@ -1,32 +1,31 @@
|
||||

|
||||
## <a id="user-content-r0" href="#r0">fixtures/dart-json.json</a> ❌
|
||||
**6** tests were completed in **3.760s** with **1** passed, **4** failed and **1** skipped.
|
||||
|Report|Passed|Failed|Skipped|Time|
|
||||
|:---|---:|---:|---:|---:|
|
||||
|[fixtures/dart-json.json](#user-content-r0)|1 ✅|4 ❌|1 ⚪|4s|
|
||||
## ❌ <a id="user-content-r0" href="#user-content-r0">fixtures/dart-json.json</a>
|
||||
**6** tests were completed in **4s** with **1** passed, **4** failed and **1** skipped.
|
||||
|Test suite|Passed|Failed|Skipped|Time|
|
||||
|:---|---:|---:|---:|---:|
|
||||
|[test/main_test.dart](#r0s0)|1✔️|3❌||74ms|
|
||||
|[test/second_test.dart](#r0s1)||1❌|1✖️|51ms|
|
||||
### <a id="user-content-r0s0" href="#r0s0">test/main_test.dart</a> ❌
|
||||
**4** tests were completed in **74ms** with **1** passed, **3** failed and **0** skipped.
|
||||
|
||||
**Test 1**
|
||||
|Result|Test|Time|
|
||||
|:---:|:---|---:|
|
||||
|✔️|Test 1 Passing test|36ms|
|
||||
|
||||
**Test 1 Test 1.1**
|
||||
|Result|Test|Time|
|
||||
|:---:|:---|---:|
|
||||
|❌|Test 1 Test 1.1 Failing test|20ms|
|
||||
|❌|Test 1 Test 1.1 Exception in target unit|6ms|
|
||||
|
||||
**Test 2**
|
||||
|Result|Test|Time|
|
||||
|:---:|:---|---:|
|
||||
|❌|Test 2 Exception in test|12ms|
|
||||
### <a id="user-content-r0s1" href="#r0s1">test/second_test.dart</a> ❌
|
||||
**2** tests were completed in **51ms** with **0** passed, **1** failed and **1** skipped.
|
||||
|
||||
|Result|Test|Time|
|
||||
|:---:|:---|---:|
|
||||
|❌|Timeout test|37ms|
|
||||
|✖️|Skipped test|14ms|
|
||||
|[test/main_test.dart](#user-content-r0s0)|1 ✅|3 ❌||74ms|
|
||||
|[test/second_test.dart](#user-content-r0s1)||1 ❌|1 ⚪|51ms|
|
||||
### ❌ <a id="user-content-r0s0" href="#user-content-r0s0">test/main_test.dart</a>
|
||||
```
|
||||
Test 1
|
||||
✅ Passing test
|
||||
Test 1 Test 1.1
|
||||
❌ Failing test
|
||||
Expected: <2>
|
||||
Actual: <1>
|
||||
|
||||
❌ Exception in target unit
|
||||
Exception: Some error
|
||||
Test 2
|
||||
❌ Exception in test
|
||||
Exception: Some error
|
||||
```
|
||||
### ❌ <a id="user-content-r0s1" href="#user-content-r0s1">test/second_test.dart</a>
|
||||
```
|
||||
❌ Timeout test
|
||||
TimeoutException after 0:00:00.000001: Test timed out after 0 seconds.
|
||||
⚪ Skipped test
|
||||
```
|
||||
31
__tests__/__outputs__/dotnet-nunit.md
Normal file
31
__tests__/__outputs__/dotnet-nunit.md
Normal file
@@ -0,0 +1,31 @@
|
||||

|
||||
|Report|Passed|Failed|Skipped|Time|
|
||||
|:---|---:|---:|---:|---:|
|
||||
|[fixtures/dotnet-nunit.xml](#user-content-r0)|3 ✅|5 ❌|1 ⚪|230ms|
|
||||
## ❌ <a id="user-content-r0" href="#user-content-r0">fixtures/dotnet-nunit.xml</a>
|
||||
**9** tests were completed in **230ms** with **3** passed, **5** failed and **1** skipped.
|
||||
|Test suite|Passed|Failed|Skipped|Time|
|
||||
|:---|---:|---:|---:|---:|
|
||||
|[DotnetTests.NUnitV3Tests.dll.DotnetTests.XUnitTests](#user-content-r0s0)|3 ✅|5 ❌|1 ⚪|69ms|
|
||||
### ❌ <a id="user-content-r0s0" href="#user-content-r0s0">DotnetTests.NUnitV3Tests.dll.DotnetTests.XUnitTests</a>
|
||||
```
|
||||
CalculatorTests
|
||||
✅ Is_Even_Number(2)
|
||||
❌ Is_Even_Number(3)
|
||||
Expected: True
|
||||
But was: False
|
||||
|
||||
❌ Exception_In_TargetTest
|
||||
System.DivideByZeroException : Attempted to divide by zero.
|
||||
❌ Exception_In_Test
|
||||
System.Exception : Test
|
||||
❌ Failing_Test
|
||||
Expected: 3
|
||||
But was: 2
|
||||
|
||||
✅ Passing_Test
|
||||
✅ Passing_Test_With_Description
|
||||
⚪ Skipped_Test
|
||||
❌ Timeout_Test
|
||||
|
||||
```
|
||||
34
__tests__/__outputs__/dotnet-trx-only-failed.md
Normal file
34
__tests__/__outputs__/dotnet-trx-only-failed.md
Normal file
@@ -0,0 +1,34 @@
|
||||

|
||||
|Report|Passed|Failed|Skipped|Time|
|
||||
|:---|---:|---:|---:|---:|
|
||||
|[fixtures/dotnet-trx.trx](#user-content-r0)|5 ✅|5 ❌|1 ⚪|1s|
|
||||
## ❌ <a id="user-content-r0" href="#user-content-r0">fixtures/dotnet-trx.trx</a>
|
||||
**11** tests were completed in **1s** with **5** passed, **5** failed and **1** skipped.
|
||||
|Test suite|Passed|Failed|Skipped|Time|
|
||||
|:---|---:|---:|---:|---:|
|
||||
|[DotnetTests.XUnitTests.CalculatorTests](#user-content-r0s0)|5 ✅|5 ❌|1 ⚪|118ms|
|
||||
### ❌ <a id="user-content-r0s0" href="#user-content-r0s0">DotnetTests.XUnitTests.CalculatorTests</a>
|
||||
```
|
||||
❌ Exception_In_TargetTest
|
||||
System.DivideByZeroException : Attempted to divide by zero.
|
||||
at DotnetTests.Unit.Calculator.Div(Int32 a, Int32 b) in C:\Users\Michal\Workspace\dorny\test-reporter\reports\dotnet\DotnetTests.Unit\Calculator.cs:line 9
|
||||
at DotnetTests.XUnitTests.CalculatorTests.Exception_In_TargetTest() in C:\Users\Michal\Workspace\dorny\test-reporter\reports\dotnet\DotnetTests.XUnitTests\CalculatorTests.cs:line 33
|
||||
❌ Exception_In_Test
|
||||
System.Exception : Test
|
||||
at DotnetTests.XUnitTests.CalculatorTests.Exception_In_Test() in C:\Users\Michal\Workspace\dorny\test-reporter\reports\dotnet\DotnetTests.XUnitTests\CalculatorTests.cs:line 39
|
||||
❌ Failing_Test
|
||||
Assert.Equal() Failure
|
||||
Expected: 3
|
||||
Actual: 2
|
||||
at DotnetTests.XUnitTests.CalculatorTests.Failing_Test() in C:\Users\Michal\Workspace\dorny\test-reporter\reports\dotnet\DotnetTests.XUnitTests\CalculatorTests.cs:line 27
|
||||
❌ Is_Even_Number(i: 3)
|
||||
Assert.True() Failure
|
||||
Expected: True
|
||||
Actual: False
|
||||
at DotnetTests.XUnitTests.CalculatorTests.Is_Even_Number(Int32 i) in C:\Users\Michal\Workspace\dorny\test-reporter\reports\dotnet\DotnetTests.XUnitTests\CalculatorTests.cs:line 59
|
||||
❌ Should be even number(i: 3)
|
||||
Assert.True() Failure
|
||||
Expected: True
|
||||
Actual: False
|
||||
at DotnetTests.XUnitTests.CalculatorTests.Theory_With_Custom_Name(Int32 i) in C:\Users\Michal\Workspace\dorny\test-reporter\reports\dotnet\DotnetTests.XUnitTests\CalculatorTests.cs:line 67
|
||||
```
|
||||
@@ -1,18 +1,40 @@
|
||||

|
||||
## <a id="user-content-r0" href="#r0">fixtures/dotnet-trx.trx</a> ❌
|
||||
**7** tests were completed in **1.061s** with **3** passed, **3** failed and **1** skipped.
|
||||

|
||||
|Report|Passed|Failed|Skipped|Time|
|
||||
|:---|---:|---:|---:|---:|
|
||||
|[fixtures/dotnet-trx.trx](#user-content-r0)|5 ✅|5 ❌|1 ⚪|1s|
|
||||
## ❌ <a id="user-content-r0" href="#user-content-r0">fixtures/dotnet-trx.trx</a>
|
||||
**11** tests were completed in **1s** with **5** passed, **5** failed and **1** skipped.
|
||||
|Test suite|Passed|Failed|Skipped|Time|
|
||||
|:---|---:|---:|---:|---:|
|
||||
|[DotnetTests.XUnitTests.CalculatorTests](#r0s0)|3✔️|3❌|1✖️|110ms|
|
||||
### <a id="user-content-r0s0" href="#r0s0">DotnetTests.XUnitTests.CalculatorTests</a> ❌
|
||||
**7** tests were completed in **110ms** with **3** passed, **3** failed and **1** skipped.
|
||||
|
||||
|Result|Test|Time|
|
||||
|:---:|:---|---:|
|
||||
|❌|Exception_In_TargetTest|0ms|
|
||||
|❌|Exception_In_Test|2ms|
|
||||
|❌|Failing_Test|3ms|
|
||||
|✔️|Passing_Test|0ms|
|
||||
|✔️|Passing_Test_With_Name|0ms|
|
||||
|✖️|Skipped_Test|1ms|
|
||||
|✔️|Timeout_Test|102ms|
|
||||
|[DotnetTests.XUnitTests.CalculatorTests](#user-content-r0s0)|5 ✅|5 ❌|1 ⚪|118ms|
|
||||
### ❌ <a id="user-content-r0s0" href="#user-content-r0s0">DotnetTests.XUnitTests.CalculatorTests</a>
|
||||
```
|
||||
✅ Custom Name
|
||||
❌ Exception_In_TargetTest
|
||||
System.DivideByZeroException : Attempted to divide by zero.
|
||||
at DotnetTests.Unit.Calculator.Div(Int32 a, Int32 b) in C:\Users\Michal\Workspace\dorny\test-reporter\reports\dotnet\DotnetTests.Unit\Calculator.cs:line 9
|
||||
at DotnetTests.XUnitTests.CalculatorTests.Exception_In_TargetTest() in C:\Users\Michal\Workspace\dorny\test-reporter\reports\dotnet\DotnetTests.XUnitTests\CalculatorTests.cs:line 33
|
||||
❌ Exception_In_Test
|
||||
System.Exception : Test
|
||||
at DotnetTests.XUnitTests.CalculatorTests.Exception_In_Test() in C:\Users\Michal\Workspace\dorny\test-reporter\reports\dotnet\DotnetTests.XUnitTests\CalculatorTests.cs:line 39
|
||||
❌ Failing_Test
|
||||
Assert.Equal() Failure
|
||||
Expected: 3
|
||||
Actual: 2
|
||||
at DotnetTests.XUnitTests.CalculatorTests.Failing_Test() in C:\Users\Michal\Workspace\dorny\test-reporter\reports\dotnet\DotnetTests.XUnitTests\CalculatorTests.cs:line 27
|
||||
✅ Is_Even_Number(i: 2)
|
||||
❌ Is_Even_Number(i: 3)
|
||||
Assert.True() Failure
|
||||
Expected: True
|
||||
Actual: False
|
||||
at DotnetTests.XUnitTests.CalculatorTests.Is_Even_Number(Int32 i) in C:\Users\Michal\Workspace\dorny\test-reporter\reports\dotnet\DotnetTests.XUnitTests\CalculatorTests.cs:line 59
|
||||
✅ Passing_Test
|
||||
✅ Should be even number(i: 2)
|
||||
❌ Should be even number(i: 3)
|
||||
Assert.True() Failure
|
||||
Expected: True
|
||||
Actual: False
|
||||
at DotnetTests.XUnitTests.CalculatorTests.Theory_With_Custom_Name(Int32 i) in C:\Users\Michal\Workspace\dorny\test-reporter\reports\dotnet\DotnetTests.XUnitTests\CalculatorTests.cs:line 67
|
||||
⚪ Skipped_Test
|
||||
✅ Timeout_Test
|
||||
```
|
||||
26
__tests__/__outputs__/dotnet-xunitv3.md
Normal file
26
__tests__/__outputs__/dotnet-xunitv3.md
Normal file
@@ -0,0 +1,26 @@
|
||||

|
||||
|Report|Passed|Failed|Skipped|Time|
|
||||
|:---|---:|---:|---:|---:|
|
||||
|[fixtures/dotnet-xunitv3.trx](#user-content-r0)|1 ✅|3 ❌||267ms|
|
||||
## ❌ <a id="user-content-r0" href="#user-content-r0">fixtures/dotnet-xunitv3.trx</a>
|
||||
**4** tests were completed in **267ms** with **1** passed, **3** failed and **0** skipped.
|
||||
|Test suite|Passed|Failed|Skipped|Time|
|
||||
|:---|---:|---:|---:|---:|
|
||||
|[DotnetTests.XUnitV3Tests.FixtureTests](#user-content-r0s0)|1 ✅|1 ❌||18ms|
|
||||
|[Unclassified](#user-content-r0s1)||2 ❌||0ms|
|
||||
### ❌ <a id="user-content-r0s0" href="#user-content-r0s0">DotnetTests.XUnitV3Tests.FixtureTests</a>
|
||||
```
|
||||
❌ Failing_Test
|
||||
Assert.Null() Failure: Value is not null
|
||||
Expected: null
|
||||
Actual: Fixture { }
|
||||
at DotnetTests.XUnitV3Tests.FixtureTests.Failing_Test() in /_/reports/dotnet/DotnetTests.XUnitV3Tests/FixtureTests.cs:line 25
|
||||
at System.RuntimeMethodHandle.InvokeMethod(Object target, Void** arguments, Signature sig, Boolean isConstructor)
|
||||
at System.Reflection.MethodBaseInvoker.InvokeWithNoArgs(Object obj, BindingFlags invokeAttr)
|
||||
✅ Passing_Test
|
||||
```
|
||||
### ❌ <a id="user-content-r0s1" href="#user-content-r0s1">Unclassified</a>
|
||||
```
|
||||
❌ [Test Class Cleanup Failure (DotnetTests.XUnitV3Tests.FixtureTests.Failing_Test)]
|
||||
❌ [Test Class Cleanup Failure (DotnetTests.XUnitV3Tests.FixtureTests.Passing_Test)]
|
||||
```
|
||||
File diff suppressed because it is too large
Load Diff
38
__tests__/__outputs__/golang-json.md
Normal file
38
__tests__/__outputs__/golang-json.md
Normal file
@@ -0,0 +1,38 @@
|
||||

|
||||
|Report|Passed|Failed|Skipped|Time|
|
||||
|:---|---:|---:|---:|---:|
|
||||
|[fixtures/golang-json.json](#user-content-r0)|5 ✅|6 ❌|1 ⚪|6s|
|
||||
## ❌ <a id="user-content-r0" href="#user-content-r0">fixtures/golang-json.json</a>
|
||||
**12** tests were completed in **6s** with **5** passed, **6** failed and **1** skipped.
|
||||
|Test suite|Passed|Failed|Skipped|Time|
|
||||
|:---|---:|---:|---:|---:|
|
||||
|[_/home/james_t/git/test-reporter/reports/go](#user-content-r0s0)|5 ✅|6 ❌|1 ⚪|6s|
|
||||
### ❌ <a id="user-content-r0s0" href="#user-content-r0s0">_/home/james_t/git/test-reporter/reports/go</a>
|
||||
```
|
||||
✅ TestPassing
|
||||
❌ TestFailing
|
||||
calculator_test.go:19: expected 1+1 = 3, got 2
|
||||
|
||||
❌ TestPanicInsideFunction
|
||||
calculator_test.go:76: caught panic: runtime error: integer divide by zero
|
||||
|
||||
❌ TestPanicInsideTest
|
||||
calculator_test.go:76: caught panic: bad stuff
|
||||
|
||||
⚪ TestSkipped
|
||||
calculator_test.go:45: skipping test
|
||||
|
||||
❌ TestCases
|
||||
|
||||
TestCases
|
||||
✅ 1_+_2_=_3
|
||||
✅ 4_+_7_=_11
|
||||
❌ 2_+_3_=_4
|
||||
calculator_test.go:67: expected 2 + 3 = 4, got 5
|
||||
|
||||
❌ 1_/_2_=_1
|
||||
calculator_test.go:67: expected 1 / 2 = 1, got 0
|
||||
|
||||
✅ 9_/_3_=_3
|
||||
✅ 14_/_7_=_2
|
||||
```
|
||||
17
__tests__/__outputs__/jest-junit-eslint.md
Normal file
17
__tests__/__outputs__/jest-junit-eslint.md
Normal file
@@ -0,0 +1,17 @@
|
||||

|
||||
<details><summary>Expand for details</summary>
|
||||
|
||||
|Report|Passed|Failed|Skipped|Time|
|
||||
|:---|---:|---:|---:|---:|
|
||||
|[fixtures/jest-junit-eslint.xml](#user-content-r0)|1 ✅|||0ms|
|
||||
## ✅ <a id="user-content-r0" href="#user-content-r0">fixtures/jest-junit-eslint.xml</a>
|
||||
**1** tests were completed in **0ms** with **1** passed, **0** failed and **0** skipped.
|
||||
|Test suite|Passed|Failed|Skipped|Time|
|
||||
|:---|---:|---:|---:|---:|
|
||||
|[test.jsx](#user-content-r0s0)|1 ✅|||0ms|
|
||||
### ✅ <a id="user-content-r0s0" href="#user-content-r0s0">test.jsx</a>
|
||||
```
|
||||
test
|
||||
✅ test.jsx
|
||||
```
|
||||
</details>
|
||||
@@ -1,32 +1,29 @@
|
||||

|
||||
## <a id="user-content-r0" href="#r0">fixtures/jest-junit.xml</a> ❌
|
||||
**6** tests were completed in **1.360s** with **1** passed, **4** failed and **1** skipped.
|
||||
|Report|Passed|Failed|Skipped|Time|
|
||||
|:---|---:|---:|---:|---:|
|
||||
|[fixtures/jest-junit.xml](#user-content-r0)|1 ✅|4 ❌|1 ⚪|1s|
|
||||
## ❌ <a id="user-content-r0" href="#user-content-r0">fixtures/jest-junit.xml</a>
|
||||
**6** tests were completed in **1s** with **1** passed, **4** failed and **1** skipped.
|
||||
|Test suite|Passed|Failed|Skipped|Time|
|
||||
|:---|---:|---:|---:|---:|
|
||||
|[__tests__\main.test.js](#r0s0)|1✔️|3❌||486ms|
|
||||
|[__tests__\second.test.js](#r0s1)||1❌|1✖️|82ms|
|
||||
### <a id="user-content-r0s0" href="#r0s0">__tests__\main.test.js</a> ❌
|
||||
**4** tests were completed in **486ms** with **1** passed, **3** failed and **0** skipped.
|
||||
|
||||
**Test 1**
|
||||
|Result|Test|Time|
|
||||
|:---:|:---|---:|
|
||||
|✔️|Passing test|1ms|
|
||||
|
||||
**Test 1 › Test 1.1**
|
||||
|Result|Test|Time|
|
||||
|:---:|:---|---:|
|
||||
|❌|Failing test|2ms|
|
||||
|❌|Exception in target unit|0ms|
|
||||
|
||||
**Test 2**
|
||||
|Result|Test|Time|
|
||||
|:---:|:---|---:|
|
||||
|❌|Exception in test|0ms|
|
||||
### <a id="user-content-r0s1" href="#r0s1">__tests__\second.test.js</a> ❌
|
||||
**2** tests were completed in **82ms** with **0** passed, **1** failed and **1** skipped.
|
||||
|
||||
|Result|Test|Time|
|
||||
|:---:|:---|---:|
|
||||
|❌|Timeout test|4ms|
|
||||
|✖️|Skipped test|0ms|
|
||||
|[__tests__\main.test.js](#user-content-r0s0)|1 ✅|3 ❌||486ms|
|
||||
|[__tests__\second.test.js](#user-content-r0s1)||1 ❌|1 ⚪|82ms|
|
||||
### ❌ <a id="user-content-r0s0" href="#user-content-r0s0">__tests__\main.test.js</a>
|
||||
```
|
||||
Test 1
|
||||
✅ Passing test
|
||||
Test 1 › Test 1.1
|
||||
❌ Failing test
|
||||
Error: expect(received).toBeTruthy()
|
||||
❌ Exception in target unit
|
||||
Error: Some error
|
||||
Test 2
|
||||
❌ Exception in test
|
||||
Error: Some error
|
||||
```
|
||||
### ❌ <a id="user-content-r0s1" href="#user-content-r0s1">__tests__\second.test.js</a>
|
||||
```
|
||||
❌ Timeout test
|
||||
: Timeout - Async callback was not invoked within the 1 ms timeout specified by jest.setTimeout.Timeout - Async callback was not invoked within the 1 ms timeout specified by jest.setTimeout.Error:
|
||||
⚪ Skipped test
|
||||
```
|
||||
16
__tests__/__outputs__/jest-react-component-test-results.md
Normal file
16
__tests__/__outputs__/jest-react-component-test-results.md
Normal file
@@ -0,0 +1,16 @@
|
||||

|
||||
<details><summary>Expand for details</summary>
|
||||
|
||||
|Report|Passed|Failed|Skipped|Time|
|
||||
|:---|---:|---:|---:|---:|
|
||||
|[fixtures/external/jest/jest-react-component-test-results.xml](#user-content-r0)|1 ✅|||1000ms|
|
||||
## ✅ <a id="user-content-r0" href="#user-content-r0">fixtures/external/jest/jest-react-component-test-results.xml</a>
|
||||
**1** tests were completed in **1000ms** with **1** passed, **0** failed and **0** skipped.
|
||||
|Test suite|Passed|Failed|Skipped|Time|
|
||||
|:---|---:|---:|---:|---:|
|
||||
|[\<Component /\>](#user-content-r0s0)|1 ✅|||798ms|
|
||||
### ✅ <a id="user-content-r0s0" href="#user-content-r0s0">\<Component /\></a>
|
||||
```
|
||||
✅ <Component /> should render properly
|
||||
```
|
||||
</details>
|
||||
File diff suppressed because it is too large
Load Diff
23
__tests__/__outputs__/junit-basic.md
Normal file
23
__tests__/__outputs__/junit-basic.md
Normal file
@@ -0,0 +1,23 @@
|
||||

|
||||
|Report|Passed|Failed|Skipped|Time|
|
||||
|:---|---:|---:|---:|---:|
|
||||
|[fixtures/external/java/junit4-basic.xml](#user-content-r0)|5 ✅|1 ❌||16s|
|
||||
## ❌ <a id="user-content-r0" href="#user-content-r0">fixtures/external/java/junit4-basic.xml</a>
|
||||
**6** tests were completed in **16s** with **5** passed, **1** failed and **0** skipped.
|
||||
|Test suite|Passed|Failed|Skipped|Time|
|
||||
|:---|---:|---:|---:|---:|
|
||||
|[Tests.Authentication](#user-content-r0s0)|2 ✅|1 ❌||9s|
|
||||
|[Tests.Registration](#user-content-r0s1)|3 ✅|||7s|
|
||||
### ❌ <a id="user-content-r0s0" href="#user-content-r0s0">Tests.Authentication</a>
|
||||
```
|
||||
✅ testCase7
|
||||
✅ testCase8
|
||||
❌ testCase9
|
||||
AssertionError: Assertion error message
|
||||
```
|
||||
### ✅ <a id="user-content-r0s1" href="#user-content-r0s1">Tests.Registration</a>
|
||||
```
|
||||
✅ testCase1
|
||||
✅ testCase2
|
||||
✅ testCase3
|
||||
```
|
||||
22
__tests__/__outputs__/junit-complete.md
Normal file
22
__tests__/__outputs__/junit-complete.md
Normal file
@@ -0,0 +1,22 @@
|
||||

|
||||
|Report|Passed|Failed|Skipped|Time|
|
||||
|:---|---:|---:|---:|---:|
|
||||
|[fixtures/external/java/junit4-complete.xml](#user-content-r0)|5 ✅|2 ❌|1 ⚪|16s|
|
||||
## ❌ <a id="user-content-r0" href="#user-content-r0">fixtures/external/java/junit4-complete.xml</a>
|
||||
**8** tests were completed in **16s** with **5** passed, **2** failed and **1** skipped.
|
||||
|Test suite|Passed|Failed|Skipped|Time|
|
||||
|:---|---:|---:|---:|---:|
|
||||
|[Tests.Registration](#user-content-r0s0)|5 ✅|2 ❌|1 ⚪|16s|
|
||||
### ❌ <a id="user-content-r0s0" href="#user-content-r0s0">Tests.Registration</a>
|
||||
```
|
||||
✅ testCase1
|
||||
✅ testCase2
|
||||
✅ testCase3
|
||||
⚪ testCase4
|
||||
❌ testCase5
|
||||
AssertionError: Expected value did not match.
|
||||
❌ testCase6
|
||||
ArithmeticError: Division by zero.
|
||||
✅ testCase7
|
||||
✅ testCase8
|
||||
```
|
||||
15
__tests__/__outputs__/junit-with-message.md
Normal file
15
__tests__/__outputs__/junit-with-message.md
Normal file
@@ -0,0 +1,15 @@
|
||||

|
||||
|Report|Passed|Failed|Skipped|Time|
|
||||
|:---|---:|---:|---:|---:|
|
||||
|[fixtures/junit-with-message.xml](#user-content-r0)||1 ❌||1ms|
|
||||
## ❌ <a id="user-content-r0" href="#user-content-r0">fixtures/junit-with-message.xml</a>
|
||||
**1** tests were completed in **1ms** with **0** passed, **1** failed and **0** skipped.
|
||||
|Test suite|Passed|Failed|Skipped|Time|
|
||||
|:---|---:|---:|---:|---:|
|
||||
|[Test](#user-content-r0s0)||1 ❌||1ms|
|
||||
### ❌ <a id="user-content-r0s0" href="#user-content-r0s0">Test</a>
|
||||
```
|
||||
Fails
|
||||
❌ Test
|
||||
error.cpp:01
|
||||
```
|
||||
32
__tests__/__outputs__/mocha-json.md
Normal file
32
__tests__/__outputs__/mocha-json.md
Normal file
@@ -0,0 +1,32 @@
|
||||

|
||||
|Report|Passed|Failed|Skipped|Time|
|
||||
|:---|---:|---:|---:|---:|
|
||||
|[fixtures/mocha-json.json](#user-content-r0)|1 ✅|4 ❌|1 ⚪|12ms|
|
||||
## ❌ <a id="user-content-r0" href="#user-content-r0">fixtures/mocha-json.json</a>
|
||||
**6** tests were completed in **12ms** with **1** passed, **4** failed and **1** skipped.
|
||||
|Test suite|Passed|Failed|Skipped|Time|
|
||||
|:---|---:|---:|---:|---:|
|
||||
|[test/main.test.js](#user-content-r0s0)|1 ✅|3 ❌||1ms|
|
||||
|[test/second.test.js](#user-content-r0s1)||1 ❌|1 ⚪|8ms|
|
||||
### ❌ <a id="user-content-r0s0" href="#user-content-r0s0">test/main.test.js</a>
|
||||
```
|
||||
Test 1
|
||||
✅ Passing test
|
||||
Test 1 Test 1.1
|
||||
❌ Exception in target unit
|
||||
Some error
|
||||
❌ Failing test
|
||||
Expected values to be strictly equal:
|
||||
|
||||
false !== true
|
||||
|
||||
Test 2
|
||||
❌ Exception in test
|
||||
Some error
|
||||
```
|
||||
### ❌ <a id="user-content-r0s1" href="#user-content-r0s1">test/second.test.js</a>
|
||||
```
|
||||
⚪ Skipped test
|
||||
❌ Timeout test
|
||||
Timeout of 1ms exceeded. For async tests and hooks, ensure "done()" is called; if returning a Promise, ensure it resolves. (C:\Users\Michal\Workspace\dorny\test-reporter\reports\mocha\test\second.test.js)
|
||||
```
|
||||
1437
__tests__/__outputs__/mocha-test-results.md
Normal file
1437
__tests__/__outputs__/mocha-test-results.md
Normal file
File diff suppressed because it is too large
Load Diff
30
__tests__/__outputs__/phpunit-junit-basic-results.md
Normal file
30
__tests__/__outputs__/phpunit-junit-basic-results.md
Normal file
@@ -0,0 +1,30 @@
|
||||

|
||||
|Report|Passed|Failed|Skipped|Time|
|
||||
|:---|---:|---:|---:|---:|
|
||||
|[fixtures/external/phpunit/junit-basic.xml](#user-content-r0)|8 ✅|1 ❌||16s|
|
||||
## ❌ <a id="user-content-r0" href="#user-content-r0">fixtures/external/phpunit/junit-basic.xml</a>
|
||||
**9** tests were completed in **16s** with **8** passed, **1** failed and **0** skipped.
|
||||
|Test suite|Passed|Failed|Skipped|Time|
|
||||
|:---|---:|---:|---:|---:|
|
||||
|[Tests.Authentication](#user-content-r0s0)|2 ✅|1 ❌||9s|
|
||||
|[Tests.Authentication.Login](#user-content-r0s1)|3 ✅|||4s|
|
||||
|[Tests.Registration](#user-content-r0s2)|3 ✅|||7s|
|
||||
### ❌ <a id="user-content-r0s0" href="#user-content-r0s0">Tests.Authentication</a>
|
||||
```
|
||||
✅ testCase7
|
||||
✅ testCase8
|
||||
❌ testCase9
|
||||
AssertionError: Assertion error message
|
||||
```
|
||||
### ✅ <a id="user-content-r0s1" href="#user-content-r0s1">Tests.Authentication.Login</a>
|
||||
```
|
||||
✅ testCase4
|
||||
✅ testCase5
|
||||
✅ testCase6
|
||||
```
|
||||
### ✅ <a id="user-content-r0s2" href="#user-content-r0s2">Tests.Registration</a>
|
||||
```
|
||||
✅ testCase1
|
||||
✅ testCase2
|
||||
✅ testCase3
|
||||
```
|
||||
88
__tests__/__outputs__/phpunit-phpcheckstyle-results.md
Normal file
88
__tests__/__outputs__/phpunit-phpcheckstyle-results.md
Normal file
@@ -0,0 +1,88 @@
|
||||

|
||||
|Report|Passed|Failed|Skipped|Time|
|
||||
|:---|---:|---:|---:|---:|
|
||||
|[fixtures/external/phpunit/phpcheckstyle-phpunit.xml](#user-content-r0)|28 ✅|2 ❌||41ms|
|
||||
## ❌ <a id="user-content-r0" href="#user-content-r0">fixtures/external/phpunit/phpcheckstyle-phpunit.xml</a>
|
||||
**30** tests were completed in **41ms** with **28** passed, **2** failed and **0** skipped.
|
||||
|Test suite|Passed|Failed|Skipped|Time|
|
||||
|:---|---:|---:|---:|---:|
|
||||
|[CommentsTest](#user-content-r0s0)|3 ✅|||7ms|
|
||||
|[DeprecationTest](#user-content-r0s1)|1 ✅|||1ms|
|
||||
|[GoodTest](#user-content-r0s2)|4 ✅|||5ms|
|
||||
|[IndentationTest](#user-content-r0s3)|8 ✅|||8ms|
|
||||
|[MetricsTest](#user-content-r0s4)|1 ✅|||4ms|
|
||||
|[NamingTest](#user-content-r0s5)|2 ✅|||3ms|
|
||||
|[OptimizationTest](#user-content-r0s6)|1 ✅|||1ms|
|
||||
|[OtherTest](#user-content-r0s7)|2 ✅|2 ❌||7ms|
|
||||
|[PHPTagsTest](#user-content-r0s8)|2 ✅|||1ms|
|
||||
|[ProhibitedTest](#user-content-r0s9)|1 ✅|||1ms|
|
||||
|[StrictCompareTest](#user-content-r0s10)|1 ✅|||2ms|
|
||||
|[UnusedTest](#user-content-r0s11)|2 ✅|||2ms|
|
||||
### ✅ <a id="user-content-r0s0" href="#user-content-r0s0">CommentsTest</a>
|
||||
```
|
||||
✅ testGoodDoc
|
||||
✅ testComments
|
||||
✅ testTODOs
|
||||
```
|
||||
### ✅ <a id="user-content-r0s1" href="#user-content-r0s1">DeprecationTest</a>
|
||||
```
|
||||
✅ testDeprecations
|
||||
```
|
||||
### ✅ <a id="user-content-r0s2" href="#user-content-r0s2">GoodTest</a>
|
||||
```
|
||||
✅ testGood
|
||||
✅ testDoWhile
|
||||
✅ testAnonymousFunction
|
||||
✅ testException
|
||||
```
|
||||
### ✅ <a id="user-content-r0s3" href="#user-content-r0s3">IndentationTest</a>
|
||||
```
|
||||
✅ testTabIndentation
|
||||
✅ testSpaceIndentation
|
||||
✅ testSpaceIndentationArray
|
||||
✅ testGoodSpaceIndentationArray
|
||||
✅ testGoodIndentationNewLine
|
||||
✅ testGoodIndentationSpaces
|
||||
✅ testBadSpaces
|
||||
✅ testBadSpaceAfterControl
|
||||
```
|
||||
### ✅ <a id="user-content-r0s4" href="#user-content-r0s4">MetricsTest</a>
|
||||
```
|
||||
✅ testMetrics
|
||||
```
|
||||
### ✅ <a id="user-content-r0s5" href="#user-content-r0s5">NamingTest</a>
|
||||
```
|
||||
✅ testNaming
|
||||
✅ testFunctionNaming
|
||||
```
|
||||
### ✅ <a id="user-content-r0s6" href="#user-content-r0s6">OptimizationTest</a>
|
||||
```
|
||||
✅ testTextAfterClosingTag
|
||||
```
|
||||
### ❌ <a id="user-content-r0s7" href="#user-content-r0s7">OtherTest</a>
|
||||
```
|
||||
❌ testOther
|
||||
PHPUnit\Framework\ExpectationFailedException
|
||||
❌ testException
|
||||
PHPUnit\Framework\ExpectationFailedException
|
||||
✅ testEmpty
|
||||
✅ testSwitchCaseNeedBreak
|
||||
```
|
||||
### ✅ <a id="user-content-r0s8" href="#user-content-r0s8">PHPTagsTest</a>
|
||||
```
|
||||
✅ testTextAfterClosingTag
|
||||
✅ testClosingTagNotNeeded
|
||||
```
|
||||
### ✅ <a id="user-content-r0s9" href="#user-content-r0s9">ProhibitedTest</a>
|
||||
```
|
||||
✅ testProhibited
|
||||
```
|
||||
### ✅ <a id="user-content-r0s10" href="#user-content-r0s10">StrictCompareTest</a>
|
||||
```
|
||||
✅ testStrictCompare
|
||||
```
|
||||
### ✅ <a id="user-content-r0s11" href="#user-content-r0s11">UnusedTest</a>
|
||||
```
|
||||
✅ testGoodUnused
|
||||
✅ testBadUnused
|
||||
```
|
||||
41
__tests__/__outputs__/phpunit-test-results.md
Normal file
41
__tests__/__outputs__/phpunit-test-results.md
Normal file
@@ -0,0 +1,41 @@
|
||||

|
||||
|Report|Passed|Failed|Skipped|Time|
|
||||
|:---|---:|---:|---:|---:|
|
||||
|[fixtures/phpunit/phpunit.xml](#user-content-r0)|10 ✅|2 ❌||148ms|
|
||||
## ❌ <a id="user-content-r0" href="#user-content-r0">fixtures/phpunit/phpunit.xml</a>
|
||||
**12** tests were completed in **148ms** with **10** passed, **2** failed and **0** skipped.
|
||||
|Test suite|Passed|Failed|Skipped|Time|
|
||||
|:---|---:|---:|---:|---:|
|
||||
|[CLI Arguments](#user-content-r0s0)||2 ❌||140ms|
|
||||
|[PHPUnit\Event\CollectingDispatcherTest](#user-content-r0s1)|2 ✅|||4ms|
|
||||
|[PHPUnit\Event\DeferringDispatcherTest](#user-content-r0s2)|4 ✅|||3ms|
|
||||
|[PHPUnit\Event\DirectDispatcherTest](#user-content-r0s3)|4 ✅|||1ms|
|
||||
### ❌ <a id="user-content-r0s0" href="#user-content-r0s0">CLI Arguments</a>
|
||||
```
|
||||
❌ targeting-traits-with-coversclass-attribute-is-deprecated.phpt
|
||||
PHPUnit\Framework\PhptAssertionFailedError
|
||||
❌ targeting-traits-with-usesclass-attribute-is-deprecated.phpt
|
||||
PHPUnit\Framework\PhptAssertionFailedError
|
||||
```
|
||||
### ✅ <a id="user-content-r0s1" href="#user-content-r0s1">PHPUnit\Event\CollectingDispatcherTest</a>
|
||||
```
|
||||
PHPUnit.Event.CollectingDispatcherTest
|
||||
✅ testHasNoCollectedEventsWhenFlushedImmediatelyAfterCreation
|
||||
✅ testCollectsDispatchedEventsUntilFlushed
|
||||
```
|
||||
### ✅ <a id="user-content-r0s2" href="#user-content-r0s2">PHPUnit\Event\DeferringDispatcherTest</a>
|
||||
```
|
||||
PHPUnit.Event.DeferringDispatcherTest
|
||||
✅ testCollectsEventsUntilFlush
|
||||
✅ testFlushesCollectedEvents
|
||||
✅ testSubscriberCanBeRegistered
|
||||
✅ testTracerCanBeRegistered
|
||||
```
|
||||
### ✅ <a id="user-content-r0s3" href="#user-content-r0s3">PHPUnit\Event\DirectDispatcherTest</a>
|
||||
```
|
||||
PHPUnit.Event.DirectDispatcherTest
|
||||
✅ testDispatchesEventToKnownSubscribers
|
||||
✅ testDispatchesEventToTracers
|
||||
✅ testRegisterRejectsUnknownSubscriber
|
||||
✅ testDispatchRejectsUnknownEventType
|
||||
```
|
||||
@@ -1,473 +1,377 @@
|
||||

|
||||
## <a id="user-content-r0" href="#r0">fixtures/external/flutter/provider-test-results.json</a> ❌
|
||||
|Report|Passed|Failed|Skipped|Time|
|
||||
|:---|---:|---:|---:|---:|
|
||||
|[fixtures/external/flutter/provider-test-results.json](#user-content-r0)|268 ✅|1 ❌||0ms|
|
||||
## ❌ <a id="user-content-r0" href="#user-content-r0">fixtures/external/flutter/provider-test-results.json</a>
|
||||
**269** tests were completed in **0ms** with **268** passed, **1** failed and **0** skipped.
|
||||
|Test suite|Passed|Failed|Skipped|Time|
|
||||
|:---|---:|---:|---:|---:|
|
||||
|[test/builder_test.dart](#r0s0)|24✔️|||402ms|
|
||||
|[test/change_notifier_provider_test.dart](#r0s1)|10✔️|||306ms|
|
||||
|[test/consumer_test.dart](#r0s2)|18✔️|||340ms|
|
||||
|[test/context_test.dart](#r0s3)|31✔️|||698ms|
|
||||
|[test/future_provider_test.dart](#r0s4)|10✔️|||305ms|
|
||||
|[test/inherited_provider_test.dart](#r0s5)|81✔️|||1.117s|
|
||||
|[test/listenable_provider_test.dart](#r0s6)|16✔️|||353ms|
|
||||
|[test/listenable_proxy_provider_test.dart](#r0s7)|12✔️|||373ms|
|
||||
|[test/multi_provider_test.dart](#r0s8)|3✔️|||198ms|
|
||||
|[test/provider_test.dart](#r0s9)|11✔️|||306ms|
|
||||
|[test/proxy_provider_test.dart](#r0s10)|16✔️|||438ms|
|
||||
|[test/reassemble_test.dart](#r0s11)|3✔️|||221ms|
|
||||
|[test/selector_test.dart](#r0s12)|17✔️|||364ms|
|
||||
|[test/stateful_provider_test.dart](#r0s13)|4✔️|||254ms|
|
||||
|[test/stream_provider_test.dart](#r0s14)|8✔️|||282ms|
|
||||
|[test/value_listenable_provider_test.dart](#r0s15)|4✔️|1❌||327ms|
|
||||
### <a id="user-content-r0s0" href="#r0s0">test/builder_test.dart</a> ✔️
|
||||
**24** tests were completed in **402ms** with **24** passed, **0** failed and **0** skipped.
|
||||
|
||||
**ChangeNotifierProvider**
|
||||
|Result|Test|Time|
|
||||
|:---:|:---|---:|
|
||||
|✔️|ChangeNotifierProvider default|189ms|
|
||||
|✔️|ChangeNotifierProvider .value|10ms|
|
||||
|
||||
**ListenableProvider**
|
||||
|Result|Test|Time|
|
||||
|:---:|:---|---:|
|
||||
|✔️|ListenableProvider default|9ms|
|
||||
|✔️|ListenableProvider .value|16ms|
|
||||
|
||||
**Provider**
|
||||
|Result|Test|Time|
|
||||
|:---:|:---|---:|
|
||||
|✔️|Provider default|11ms|
|
||||
|✔️|Provider .value|8ms|
|
||||
|
||||
**ProxyProvider**
|
||||
|Result|Test|Time|
|
||||
|:---:|:---|---:|
|
||||
|✔️|ProxyProvider 0|11ms|
|
||||
|✔️|ProxyProvider 1|10ms|
|
||||
|✔️|ProxyProvider 2|8ms|
|
||||
|✔️|ProxyProvider 3|10ms|
|
||||
|✔️|ProxyProvider 4|9ms|
|
||||
|✔️|ProxyProvider 5|9ms|
|
||||
|✔️|ProxyProvider 6|9ms|
|
||||
|
||||
**MultiProvider**
|
||||
|Result|Test|Time|
|
||||
|:---:|:---|---:|
|
||||
|✔️|MultiProvider with 1 ChangeNotifierProvider default|9ms|
|
||||
|✔️|MultiProvider with 2 ChangeNotifierProvider default|9ms|
|
||||
|✔️|MultiProvider with ListenableProvider default|12ms|
|
||||
|✔️|MultiProvider with Provider default|8ms|
|
||||
|✔️|MultiProvider with ProxyProvider0|7ms|
|
||||
|✔️|MultiProvider with ProxyProvider1|9ms|
|
||||
|✔️|MultiProvider with ProxyProvider2|7ms|
|
||||
|✔️|MultiProvider with ProxyProvider3|9ms|
|
||||
|✔️|MultiProvider with ProxyProvider4|9ms|
|
||||
|✔️|MultiProvider with ProxyProvider5|7ms|
|
||||
|✔️|MultiProvider with ProxyProvider6|7ms|
|
||||
### <a id="user-content-r0s1" href="#r0s1">test/change_notifier_provider_test.dart</a> ✔️
|
||||
**10** tests were completed in **306ms** with **10** passed, **0** failed and **0** skipped.
|
||||
|
||||
|Result|Test|Time|
|
||||
|:---:|:---|---:|
|
||||
|✔️|Use builder property, not child|10ms|
|
||||
|
||||
**ChangeNotifierProvider**
|
||||
|Result|Test|Time|
|
||||
|:---:|:---|---:|
|
||||
|✔️|ChangeNotifierProvider value|185ms|
|
||||
|✔️|ChangeNotifierProvider builder|18ms|
|
||||
|✔️|ChangeNotifierProvider builder1|12ms|
|
||||
|✔️|ChangeNotifierProvider builder2|12ms|
|
||||
|✔️|ChangeNotifierProvider builder3|19ms|
|
||||
|✔️|ChangeNotifierProvider builder4|14ms|
|
||||
|✔️|ChangeNotifierProvider builder5|15ms|
|
||||
|✔️|ChangeNotifierProvider builder6|11ms|
|
||||
|✔️|ChangeNotifierProvider builder0|10ms|
|
||||
### <a id="user-content-r0s2" href="#r0s2">test/consumer_test.dart</a> ✔️
|
||||
**18** tests were completed in **340ms** with **18** passed, **0** failed and **0** skipped.
|
||||
|
||||
**consumer**
|
||||
|Result|Test|Time|
|
||||
|:---:|:---|---:|
|
||||
|✔️|consumer obtains value from Provider<T>|181ms|
|
||||
|✔️|consumer crashed with no builder|11ms|
|
||||
|✔️|consumer can be used inside MultiProvider|16ms|
|
||||
|
||||
**consumer2**
|
||||
|Result|Test|Time|
|
||||
|:---:|:---|---:|
|
||||
|✔️|consumer2 obtains value from Provider<T>|22ms|
|
||||
|✔️|consumer2 crashed with no builder|8ms|
|
||||
|✔️|consumer2 can be used inside MultiProvider|9ms|
|
||||
|
||||
**consumer3**
|
||||
|Result|Test|Time|
|
||||
|:---:|:---|---:|
|
||||
|✔️|consumer3 obtains value from Provider<T>|9ms|
|
||||
|✔️|consumer3 crashed with no builder|7ms|
|
||||
|✔️|consumer3 can be used inside MultiProvider|8ms|
|
||||
|
||||
**consumer4**
|
||||
|Result|Test|Time|
|
||||
|:---:|:---|---:|
|
||||
|✔️|consumer4 obtains value from Provider<T>|8ms|
|
||||
|✔️|consumer4 crashed with no builder|6ms|
|
||||
|✔️|consumer4 can be used inside MultiProvider|8ms|
|
||||
|
||||
**consumer5**
|
||||
|Result|Test|Time|
|
||||
|:---:|:---|---:|
|
||||
|✔️|consumer5 obtains value from Provider<T>|8ms|
|
||||
|✔️|consumer5 crashed with no builder|6ms|
|
||||
|✔️|consumer5 can be used inside MultiProvider|9ms|
|
||||
|
||||
**consumer6**
|
||||
|Result|Test|Time|
|
||||
|:---:|:---|---:|
|
||||
|✔️|consumer6 obtains value from Provider<T>|8ms|
|
||||
|✔️|consumer6 crashed with no builder|8ms|
|
||||
|✔️|consumer6 can be used inside MultiProvider|8ms|
|
||||
### <a id="user-content-r0s3" href="#r0s3">test/context_test.dart</a> ✔️
|
||||
**31** tests were completed in **698ms** with **31** passed, **0** failed and **0** skipped.
|
||||
|
||||
|Result|Test|Time|
|
||||
|:---:|:---|---:|
|
||||
|✔️|watch in layoutbuilder|179ms|
|
||||
|✔️|select in layoutbuilder|12ms|
|
||||
|✔️|cannot select in listView|138ms|
|
||||
|✔️|watch in listView|33ms|
|
||||
|✔️|watch in gridView|21ms|
|
||||
|✔️|clears select dependencies for all dependents|19ms|
|
||||
|
||||
**BuildContext**
|
||||
|Result|Test|Time|
|
||||
|:---:|:---|---:|
|
||||
|✔️|BuildContext internal selected value is updated|32ms|
|
||||
|✔️|BuildContext create can use read without being lazy|11ms|
|
||||
|✔️|BuildContext watch can be used inside InheritedProvider.update|10ms|
|
||||
|✔️|BuildContext select doesn't fail if it loads a provider that depends on other providers|9ms|
|
||||
|✔️|BuildContext don't call old selectors if the child rebuilds individually|21ms|
|
||||
|✔️|BuildContext selects throws inside click handlers|40ms|
|
||||
|✔️|BuildContext select throws if try to read dynamic|9ms|
|
||||
|✔️|BuildContext select throws ProviderNotFoundException|9ms|
|
||||
|✔️|BuildContext select throws if watch called inside the callback from build|6ms|
|
||||
|✔️|BuildContext select throws if read called inside the callback from build|9ms|
|
||||
|✔️|BuildContext select throws if select called inside the callback from build|8ms|
|
||||
|✔️|BuildContext select throws if read called inside the callback on dependency change|10ms|
|
||||
|✔️|BuildContext select throws if watch called inside the callback on dependency change|17ms|
|
||||
|✔️|BuildContext select throws if select called inside the callback on dependency change|9ms|
|
||||
|✔️|BuildContext can call read inside didChangeDependencies|9ms|
|
||||
|✔️|BuildContext select cannot be called inside didChangeDependencies|6ms|
|
||||
|✔️|BuildContext select in initState throws|6ms|
|
||||
|✔️|BuildContext watch in initState throws|10ms|
|
||||
|✔️|BuildContext read in initState works|6ms|
|
||||
|✔️|BuildContext consumer can be removed and selector stops to be called|7ms|
|
||||
|✔️|BuildContext context.select deeply compares maps|15ms|
|
||||
|✔️|BuildContext context.select deeply compares lists|8ms|
|
||||
|✔️|BuildContext context.select deeply compares iterables|8ms|
|
||||
|✔️|BuildContext context.select deeply compares sets|11ms|
|
||||
|✔️|BuildContext context.watch listens to value changes|10ms|
|
||||
### <a id="user-content-r0s4" href="#r0s4">test/future_provider_test.dart</a> ✔️
|
||||
**10** tests were completed in **305ms** with **10** passed, **0** failed and **0** skipped.
|
||||
|
||||
|Result|Test|Time|
|
||||
|:---:|:---|---:|
|
||||
|✔️|works with MultiProvider|184ms|
|
||||
|✔️|(catchError) previous future completes after transition is no-op|16ms|
|
||||
|✔️|previous future completes after transition is no-op|15ms|
|
||||
|✔️|transition from future to future preserve state|12ms|
|
||||
|✔️|throws if future has error and catchError is missing|24ms|
|
||||
|✔️|calls catchError if present and future has error|21ms|
|
||||
|✔️|works with null|14ms|
|
||||
|✔️|create and dispose future with builder|12ms|
|
||||
|✔️|FutureProvider() crashes if builder is null|4ms|
|
||||
|
||||
**FutureProvider()**
|
||||
|Result|Test|Time|
|
||||
|:---:|:---|---:|
|
||||
|✔️|FutureProvider() crashes if builder is null|3ms|
|
||||
### <a id="user-content-r0s5" href="#r0s5">test/inherited_provider_test.dart</a> ✔️
|
||||
**81** tests were completed in **1.117s** with **81** passed, **0** failed and **0** skipped.
|
||||
|
||||
|Result|Test|Time|
|
||||
|:---:|:---|---:|
|
||||
|✔️|regression test #377|167ms|
|
||||
|✔️|rebuild on dependency flags update|15ms|
|
||||
|✔️|properly update debug flags if a create triggers another deferred create|9ms|
|
||||
|✔️|properly update debug flags if a create triggers another deferred create|8ms|
|
||||
|✔️|properly update debug flags if an update triggers another create/update|7ms|
|
||||
|✔️|properly update debug flags if a create triggers another create/update|8ms|
|
||||
|✔️|Provider.of(listen: false) outside of build works when it loads a provider|22ms|
|
||||
|✔️|new value is available in didChangeDependencies|26ms|
|
||||
|✔️|builder receives the current value and updates independently from `update`|16ms|
|
||||
|✔️|builder can _not_ rebuild when provider updates|8ms|
|
||||
|✔️|builder rebuilds if provider is recreated|9ms|
|
||||
|✔️|provider.of throws if listen:true outside of the widget tree|23ms|
|
||||
|✔️|InheritedProvider throws if no child is provided with default constructor|14ms|
|
||||
|✔️|InheritedProvider throws if no child is provided with value constructor|8ms|
|
||||
|✔️|DeferredInheritedProvider throws if no child is provided with default constructor|15ms|
|
||||
|✔️|DeferredInheritedProvider throws if no child is provided with value constructor|7ms|
|
||||
|✔️|startListening markNeedsNotifyDependents|7ms|
|
||||
|✔️|InheritedProvider can be subclassed|8ms|
|
||||
|✔️|DeferredInheritedProvider can be subclassed|7ms|
|
||||
|✔️|can be used with MultiProvider|8ms|
|
||||
|✔️|throw if the widget ctor changes|8ms|
|
||||
|✔️|InheritedProvider lazy loading can be disabled|6ms|
|
||||
|✔️|InheritedProvider.value lazy loading can be disabled|9ms|
|
||||
|✔️|InheritedProvider subclass don't have to specify default lazy value|7ms|
|
||||
|✔️|DeferredInheritedProvider lazy loading can be disabled|7ms|
|
||||
|✔️|DeferredInheritedProvider.value lazy loading can be disabled|7ms|
|
||||
|✔️|selector|14ms|
|
||||
|✔️|can select multiple types from same provider|9ms|
|
||||
|✔️|can select same type on two different providers|8ms|
|
||||
|✔️|can select same type twice on same provider|10ms|
|
||||
|✔️|Provider.of has a proper error message if context is null|6ms|
|
||||
|
||||
**diagnostics**
|
||||
|Result|Test|Time|
|
||||
|:---:|:---|---:|
|
||||
|✔️|diagnostics InheritedProvider.value|11ms|
|
||||
|✔️|diagnostics InheritedProvider doesn't break lazy loading|7ms|
|
||||
|✔️|diagnostics InheritedProvider show if listening|7ms|
|
||||
|✔️|diagnostics DeferredInheritedProvider.value|6ms|
|
||||
|✔️|diagnostics DeferredInheritedProvider|16ms|
|
||||
|
||||
**InheritedProvider.value()**
|
||||
|Result|Test|Time|
|
||||
|:---:|:---|---:|
|
||||
|✔️|InheritedProvider.value() markNeedsNotifyDependents during startListening is noop|8ms|
|
||||
|✔️|InheritedProvider.value() startListening called again when create returns new value|27ms|
|
||||
|✔️|InheritedProvider.value() startListening|19ms|
|
||||
|✔️|InheritedProvider.value() stopListening not called twice if rebuild doesn't have listeners|16ms|
|
||||
|✔️|InheritedProvider.value() removeListener cannot be null|22ms|
|
||||
|✔️|InheritedProvider.value() pass down current value|17ms|
|
||||
|✔️|InheritedProvider.value() default updateShouldNotify|8ms|
|
||||
|✔️|InheritedProvider.value() custom updateShouldNotify|32ms|
|
||||
|
||||
**InheritedProvider()**
|
||||
|Result|Test|Time|
|
||||
|:---:|:---|---:|
|
||||
|✔️|InheritedProvider() hasValue|16ms|
|
||||
|✔️|InheritedProvider() provider calls update if rebuilding only due to didChangeDependencies|9ms|
|
||||
|✔️|InheritedProvider() provider notifying dependents doesn't call update|11ms|
|
||||
|✔️|InheritedProvider() update can call Provider.of with listen:true|7ms|
|
||||
|✔️|InheritedProvider() update lazy loaded can call Provider.of with listen:true|10ms|
|
||||
|✔️|InheritedProvider() markNeedsNotifyDependents during startListening is noop|22ms|
|
||||
|✔️|InheritedProvider() update can obtain parent of the same type than self|15ms|
|
||||
|✔️|InheritedProvider() _debugCheckInvalidValueType|22ms|
|
||||
|✔️|InheritedProvider() startListening|18ms|
|
||||
|✔️|InheritedProvider() startListening called again when create returns new value|20ms|
|
||||
|✔️|InheritedProvider() stopListening not called twice if rebuild doesn't have listeners|18ms|
|
||||
|✔️|InheritedProvider() removeListener cannot be null|16ms|
|
||||
|✔️|InheritedProvider() fails if initialValueBuilder calls inheritFromElement/inheritFromWiggetOfExactType|17ms|
|
||||
|✔️|InheritedProvider() builder is called on every rebuild and after a dependency change|11ms|
|
||||
|✔️|InheritedProvider() builder with no updateShouldNotify use ==|8ms|
|
||||
|✔️|InheritedProvider() builder calls updateShouldNotify callback|8ms|
|
||||
|✔️|InheritedProvider() initialValue is transmitted to valueBuilder|8ms|
|
||||
|✔️|InheritedProvider() calls builder again if dependencies change|22ms|
|
||||
|✔️|InheritedProvider() exposes initialValue if valueBuilder is null|20ms|
|
||||
|✔️|InheritedProvider() call dispose on unmount|22ms|
|
||||
|✔️|InheritedProvider() builder unmount, dispose not called if value never read|11ms|
|
||||
|✔️|InheritedProvider() call dispose after new value|9ms|
|
||||
|✔️|InheritedProvider() valueBuilder works without initialBuilder|11ms|
|
||||
|✔️|InheritedProvider() calls initialValueBuilder lazily once|7ms|
|
||||
|✔️|InheritedProvider() throws if both builder and initialBuilder are missing|5ms|
|
||||
|
||||
**DeferredInheritedProvider.value()**
|
||||
|Result|Test|Time|
|
||||
|:---:|:---|---:|
|
||||
|✔️|DeferredInheritedProvider.value() hasValue|6ms|
|
||||
|✔️|DeferredInheritedProvider.value() startListening|9ms|
|
||||
|✔️|DeferredInheritedProvider.value() stopListening cannot be null|9ms|
|
||||
|✔️|DeferredInheritedProvider.value() startListening doesn't need setState if already initialized|8ms|
|
||||
|✔️|DeferredInheritedProvider.value() setState without updateShouldNotify|8ms|
|
||||
|✔️|DeferredInheritedProvider.value() setState with updateShouldNotify|9ms|
|
||||
|✔️|DeferredInheritedProvider.value() startListening never leave the widget uninitialized|8ms|
|
||||
|✔️|DeferredInheritedProvider.value() startListening called again on controller change|10ms|
|
||||
|
||||
**DeferredInheritedProvider()**
|
||||
|Result|Test|Time|
|
||||
|:---:|:---|---:|
|
||||
|✔️|DeferredInheritedProvider() create can't call inherited widgets|7ms|
|
||||
|✔️|DeferredInheritedProvider() creates the value lazily|7ms|
|
||||
|✔️|DeferredInheritedProvider() dispose|7ms|
|
||||
|✔️|DeferredInheritedProvider() dispose no-op if never built|7ms|
|
||||
### <a id="user-content-r0s6" href="#r0s6">test/listenable_provider_test.dart</a> ✔️
|
||||
**16** tests were completed in **353ms** with **16** passed, **0** failed and **0** skipped.
|
||||
|
||||
**ListenableProvider**
|
||||
|Result|Test|Time|
|
||||
|:---:|:---|---:|
|
||||
|✔️|ListenableProvider works with MultiProvider|173ms|
|
||||
|✔️|ListenableProvider asserts that the created notifier can have listeners|12ms|
|
||||
|✔️|ListenableProvider don't listen again if listenable instance doesn't change|12ms|
|
||||
|✔️|ListenableProvider works with null (default)|7ms|
|
||||
|✔️|ListenableProvider works with null (create)|7ms|
|
||||
|✔️|ListenableProvider stateful create called once|11ms|
|
||||
|✔️|ListenableProvider dispose called on unmount|13ms|
|
||||
|✔️|ListenableProvider dispose can be null|8ms|
|
||||
|✔️|ListenableProvider changing listenable rebuilds descendants|12ms|
|
||||
|✔️|ListenableProvider rebuilding with the same provider don't rebuilds descendants|11ms|
|
||||
|✔️|ListenableProvider notifylistener rebuilds descendants|9ms|
|
||||
|
||||
**ListenableProvider value constructor**
|
||||
|Result|Test|Time|
|
||||
|:---:|:---|---:|
|
||||
|✔️|ListenableProvider value constructor pass down key|17ms|
|
||||
|✔️|ListenableProvider value constructor changing the Listenable instance rebuilds dependents|29ms|
|
||||
|
||||
**ListenableProvider stateful constructor**
|
||||
|Result|Test|Time|
|
||||
|:---:|:---|---:|
|
||||
|✔️|ListenableProvider stateful constructor called with context|8ms|
|
||||
|✔️|ListenableProvider stateful constructor pass down key|20ms|
|
||||
|✔️|ListenableProvider stateful constructor throws if create is null|4ms|
|
||||
### <a id="user-content-r0s7" href="#r0s7">test/listenable_proxy_provider_test.dart</a> ✔️
|
||||
**12** tests were completed in **373ms** with **12** passed, **0** failed and **0** skipped.
|
||||
|
||||
**ListenableProxyProvider**
|
||||
|Result|Test|Time|
|
||||
|:---:|:---|---:|
|
||||
|✔️|ListenableProxyProvider throws if update is missing|43ms|
|
||||
|✔️|ListenableProxyProvider asserts that the created notifier has no listener|177ms|
|
||||
|✔️|ListenableProxyProvider asserts that the created notifier has no listener after rebuild|18ms|
|
||||
|✔️|ListenableProxyProvider rebuilds dependendents when listeners are called|20ms|
|
||||
|✔️|ListenableProxyProvider update returning a new Listenable disposes the previously created value and update dependents|25ms|
|
||||
|✔️|ListenableProxyProvider disposes of created value|13ms|
|
||||
|
||||
**ListenableProxyProvider variants**
|
||||
|Result|Test|Time|
|
||||
|:---:|:---|---:|
|
||||
|✔️|ListenableProxyProvider variants ListenableProxyProvider|13ms|
|
||||
|✔️|ListenableProxyProvider variants ListenableProxyProvider2|9ms|
|
||||
|✔️|ListenableProxyProvider variants ListenableProxyProvider3|9ms|
|
||||
|✔️|ListenableProxyProvider variants ListenableProxyProvider4|17ms|
|
||||
|✔️|ListenableProxyProvider variants ListenableProxyProvider5|12ms|
|
||||
|✔️|ListenableProxyProvider variants ListenableProxyProvider6|17ms|
|
||||
### <a id="user-content-r0s8" href="#r0s8">test/multi_provider_test.dart</a> ✔️
|
||||
**3** tests were completed in **198ms** with **3** passed, **0** failed and **0** skipped.
|
||||
|
||||
**MultiProvider**
|
||||
|Result|Test|Time|
|
||||
|:---:|:---|---:|
|
||||
|✔️|MultiProvider throw if providers is null|30ms|
|
||||
|✔️|MultiProvider MultiProvider children can only access parent providers|160ms|
|
||||
|✔️|MultiProvider MultiProvider.providers with ignored child|8ms|
|
||||
### <a id="user-content-r0s9" href="#r0s9">test/provider_test.dart</a> ✔️
|
||||
**11** tests were completed in **306ms** with **11** passed, **0** failed and **0** skipped.
|
||||
|
||||
|Result|Test|Time|
|
||||
|:---:|:---|---:|
|
||||
|✔️|works with MultiProvider|172ms|
|
||||
|
||||
**Provider.of**
|
||||
|Result|Test|Time|
|
||||
|:---:|:---|---:|
|
||||
|✔️|Provider.of throws if T is dynamic|26ms|
|
||||
|✔️|Provider.of listen defaults to true when building widgets|13ms|
|
||||
|✔️|Provider.of listen defaults to false outside of the widget tree|9ms|
|
||||
|✔️|Provider.of listen:false doesn't trigger rebuild|10ms|
|
||||
|✔️|Provider.of listen:true outside of the widget tree throws|11ms|
|
||||
|
||||
**Provider**
|
||||
|Result|Test|Time|
|
||||
|:---:|:---|---:|
|
||||
|✔️|Provider throws if the provided value is a Listenable/Stream|28ms|
|
||||
|✔️|Provider debugCheckInvalidValueType can be disabled|9ms|
|
||||
|✔️|Provider simple usage|9ms|
|
||||
|✔️|Provider throws an error if no provider found|11ms|
|
||||
|✔️|Provider update should notify|8ms|
|
||||
### <a id="user-content-r0s10" href="#r0s10">test/proxy_provider_test.dart</a> ✔️
|
||||
**16** tests were completed in **438ms** with **16** passed, **0** failed and **0** skipped.
|
||||
|
||||
**ProxyProvider**
|
||||
|Result|Test|Time|
|
||||
|:---:|:---|---:|
|
||||
|✔️|ProxyProvider throws if the provided value is a Listenable/Stream|209ms|
|
||||
|✔️|ProxyProvider debugCheckInvalidValueType can be disabled|13ms|
|
||||
|✔️|ProxyProvider create creates initial value|23ms|
|
||||
|✔️|ProxyProvider consume another providers|18ms|
|
||||
|✔️|ProxyProvider rebuild descendants if value change|13ms|
|
||||
|✔️|ProxyProvider call dispose when unmounted with the latest result|11ms|
|
||||
|✔️|ProxyProvider don't rebuild descendants if value doesn't change|12ms|
|
||||
|✔️|ProxyProvider pass down updateShouldNotify|19ms|
|
||||
|✔️|ProxyProvider works with MultiProvider|16ms|
|
||||
|✔️|ProxyProvider update callback can trigger descendants setState synchronously|24ms|
|
||||
|✔️|ProxyProvider throws if update is null|7ms|
|
||||
|
||||
**ProxyProvider variants**
|
||||
|Result|Test|Time|
|
||||
|:---:|:---|---:|
|
||||
|✔️|ProxyProvider variants ProxyProvider2|18ms|
|
||||
|✔️|ProxyProvider variants ProxyProvider3|16ms|
|
||||
|✔️|ProxyProvider variants ProxyProvider4|9ms|
|
||||
|✔️|ProxyProvider variants ProxyProvider5|20ms|
|
||||
|✔️|ProxyProvider variants ProxyProvider6|10ms|
|
||||
### <a id="user-content-r0s11" href="#r0s11">test/reassemble_test.dart</a> ✔️
|
||||
**3** tests were completed in **221ms** with **3** passed, **0** failed and **0** skipped.
|
||||
|
||||
|Result|Test|Time|
|
||||
|:---:|:---|---:|
|
||||
|✔️|ReassembleHandler|194ms|
|
||||
|✔️|unevaluated create|11ms|
|
||||
|✔️|unevaluated create|16ms|
|
||||
### <a id="user-content-r0s12" href="#r0s12">test/selector_test.dart</a> ✔️
|
||||
**17** tests were completed in **364ms** with **17** passed, **0** failed and **0** skipped.
|
||||
|
||||
|Result|Test|Time|
|
||||
|:---:|:---|---:|
|
||||
|✔️|asserts that builder/selector are not null|32ms|
|
||||
|✔️|Deep compare maps by default|158ms|
|
||||
|✔️|Deep compare iterables by default|9ms|
|
||||
|✔️|Deep compare sets by default|12ms|
|
||||
|✔️|Deep compare lists by default|14ms|
|
||||
|✔️|custom shouldRebuid|11ms|
|
||||
|✔️|passes `child` and `key`|13ms|
|
||||
|✔️|calls builder if the callback changes|14ms|
|
||||
|✔️|works with MultiProvider|12ms|
|
||||
|✔️|don't call builder again if it rebuilds but selector returns the same thing|9ms|
|
||||
|✔️|call builder again if it rebuilds abd selector returns the a different variable|9ms|
|
||||
|✔️|Selector|15ms|
|
||||
|✔️|Selector2|9ms|
|
||||
|✔️|Selector3|8ms|
|
||||
|✔️|Selector4|9ms|
|
||||
|✔️|Selector5|19ms|
|
||||
|✔️|Selector6|11ms|
|
||||
### <a id="user-content-r0s13" href="#r0s13">test/stateful_provider_test.dart</a> ✔️
|
||||
**4** tests were completed in **254ms** with **4** passed, **0** failed and **0** skipped.
|
||||
|
||||
|Result|Test|Time|
|
||||
|:---:|:---|---:|
|
||||
|✔️|asserts|6ms|
|
||||
|✔️|works with MultiProvider|203ms|
|
||||
|✔️|calls create only once|27ms|
|
||||
|✔️|dispose|18ms|
|
||||
### <a id="user-content-r0s14" href="#r0s14">test/stream_provider_test.dart</a> ✔️
|
||||
**8** tests were completed in **282ms** with **8** passed, **0** failed and **0** skipped.
|
||||
|
||||
|Result|Test|Time|
|
||||
|:---:|:---|---:|
|
||||
|✔️|works with MultiProvider|191ms|
|
||||
|✔️|transition from stream to stream preserve state|16ms|
|
||||
|✔️|throws if stream has error and catchError is missing|22ms|
|
||||
|✔️|calls catchError if present and stream has error|20ms|
|
||||
|✔️|works with null|13ms|
|
||||
|✔️|StreamProvider() crashes if builder is null|5ms|
|
||||
|
||||
**StreamProvider()**
|
||||
|Result|Test|Time|
|
||||
|:---:|:---|---:|
|
||||
|✔️|StreamProvider() create and dispose stream with builder|11ms|
|
||||
|✔️|StreamProvider() crashes if builder is null|4ms|
|
||||
### <a id="user-content-r0s15" href="#r0s15">test/value_listenable_provider_test.dart</a> ❌
|
||||
**5** tests were completed in **327ms** with **4** passed, **1** failed and **0** skipped.
|
||||
|
||||
**valueListenableProvider**
|
||||
|Result|Test|Time|
|
||||
|:---:|:---|---:|
|
||||
|✔️|valueListenableProvider rebuilds when value change|200ms|
|
||||
|✔️|valueListenableProvider don't rebuild dependents by default|26ms|
|
||||
|✔️|valueListenableProvider pass keys|10ms|
|
||||
|✔️|valueListenableProvider don't listen again if stream instance doesn't change|22ms|
|
||||
|❌|valueListenableProvider pass updateShouldNotify|69ms|
|
||||
|[test/builder_test.dart](#user-content-r0s0)|24 ✅|||402ms|
|
||||
|[test/change_notifier_provider_test.dart](#user-content-r0s1)|10 ✅|||306ms|
|
||||
|[test/consumer_test.dart](#user-content-r0s2)|18 ✅|||340ms|
|
||||
|[test/context_test.dart](#user-content-r0s3)|31 ✅|||698ms|
|
||||
|[test/future_provider_test.dart](#user-content-r0s4)|10 ✅|||305ms|
|
||||
|[test/inherited_provider_test.dart](#user-content-r0s5)|81 ✅|||1s|
|
||||
|[test/listenable_provider_test.dart](#user-content-r0s6)|16 ✅|||353ms|
|
||||
|[test/listenable_proxy_provider_test.dart](#user-content-r0s7)|12 ✅|||373ms|
|
||||
|[test/multi_provider_test.dart](#user-content-r0s8)|3 ✅|||198ms|
|
||||
|[test/provider_test.dart](#user-content-r0s9)|11 ✅|||306ms|
|
||||
|[test/proxy_provider_test.dart](#user-content-r0s10)|16 ✅|||438ms|
|
||||
|[test/reassemble_test.dart](#user-content-r0s11)|3 ✅|||221ms|
|
||||
|[test/selector_test.dart](#user-content-r0s12)|17 ✅|||364ms|
|
||||
|[test/stateful_provider_test.dart](#user-content-r0s13)|4 ✅|||254ms|
|
||||
|[test/stream_provider_test.dart](#user-content-r0s14)|8 ✅|||282ms|
|
||||
|[test/value_listenable_provider_test.dart](#user-content-r0s15)|4 ✅|1 ❌||327ms|
|
||||
### ✅ <a id="user-content-r0s0" href="#user-content-r0s0">test/builder_test.dart</a>
|
||||
```
|
||||
ChangeNotifierProvider
|
||||
✅ default
|
||||
✅ .value
|
||||
ListenableProvider
|
||||
✅ default
|
||||
✅ .value
|
||||
Provider
|
||||
✅ default
|
||||
✅ .value
|
||||
ProxyProvider
|
||||
✅ 0
|
||||
✅ 1
|
||||
✅ 2
|
||||
✅ 3
|
||||
✅ 4
|
||||
✅ 5
|
||||
✅ 6
|
||||
MultiProvider
|
||||
✅ with 1 ChangeNotifierProvider default
|
||||
✅ with 2 ChangeNotifierProvider default
|
||||
✅ with ListenableProvider default
|
||||
✅ with Provider default
|
||||
✅ with ProxyProvider0
|
||||
✅ with ProxyProvider1
|
||||
✅ with ProxyProvider2
|
||||
✅ with ProxyProvider3
|
||||
✅ with ProxyProvider4
|
||||
✅ with ProxyProvider5
|
||||
✅ with ProxyProvider6
|
||||
```
|
||||
### ✅ <a id="user-content-r0s1" href="#user-content-r0s1">test/change_notifier_provider_test.dart</a>
|
||||
```
|
||||
✅ Use builder property, not child
|
||||
ChangeNotifierProvider
|
||||
✅ value
|
||||
✅ builder
|
||||
✅ builder1
|
||||
✅ builder2
|
||||
✅ builder3
|
||||
✅ builder4
|
||||
✅ builder5
|
||||
✅ builder6
|
||||
✅ builder0
|
||||
```
|
||||
### ✅ <a id="user-content-r0s2" href="#user-content-r0s2">test/consumer_test.dart</a>
|
||||
```
|
||||
consumer
|
||||
✅ obtains value from Provider<T>
|
||||
✅ crashed with no builder
|
||||
✅ can be used inside MultiProvider
|
||||
consumer2
|
||||
✅ obtains value from Provider<T>
|
||||
✅ crashed with no builder
|
||||
✅ can be used inside MultiProvider
|
||||
consumer3
|
||||
✅ obtains value from Provider<T>
|
||||
✅ crashed with no builder
|
||||
✅ can be used inside MultiProvider
|
||||
consumer4
|
||||
✅ obtains value from Provider<T>
|
||||
✅ crashed with no builder
|
||||
✅ can be used inside MultiProvider
|
||||
consumer5
|
||||
✅ obtains value from Provider<T>
|
||||
✅ crashed with no builder
|
||||
✅ can be used inside MultiProvider
|
||||
consumer6
|
||||
✅ obtains value from Provider<T>
|
||||
✅ crashed with no builder
|
||||
✅ can be used inside MultiProvider
|
||||
```
|
||||
### ✅ <a id="user-content-r0s3" href="#user-content-r0s3">test/context_test.dart</a>
|
||||
```
|
||||
✅ watch in layoutbuilder
|
||||
✅ select in layoutbuilder
|
||||
✅ cannot select in listView
|
||||
✅ watch in listView
|
||||
✅ watch in gridView
|
||||
✅ clears select dependencies for all dependents
|
||||
BuildContext
|
||||
✅ internal selected value is updated
|
||||
✅ create can use read without being lazy
|
||||
✅ watch can be used inside InheritedProvider.update
|
||||
✅ select doesn't fail if it loads a provider that depends on other providers
|
||||
✅ don't call old selectors if the child rebuilds individually
|
||||
✅ selects throws inside click handlers
|
||||
✅ select throws if try to read dynamic
|
||||
✅ select throws ProviderNotFoundException
|
||||
✅ select throws if watch called inside the callback from build
|
||||
✅ select throws if read called inside the callback from build
|
||||
✅ select throws if select called inside the callback from build
|
||||
✅ select throws if read called inside the callback on dependency change
|
||||
✅ select throws if watch called inside the callback on dependency change
|
||||
✅ select throws if select called inside the callback on dependency change
|
||||
✅ can call read inside didChangeDependencies
|
||||
✅ select cannot be called inside didChangeDependencies
|
||||
✅ select in initState throws
|
||||
✅ watch in initState throws
|
||||
✅ read in initState works
|
||||
✅ consumer can be removed and selector stops to be called
|
||||
✅ context.select deeply compares maps
|
||||
✅ context.select deeply compares lists
|
||||
✅ context.select deeply compares iterables
|
||||
✅ context.select deeply compares sets
|
||||
✅ context.watch listens to value changes
|
||||
```
|
||||
### ✅ <a id="user-content-r0s4" href="#user-content-r0s4">test/future_provider_test.dart</a>
|
||||
```
|
||||
✅ works with MultiProvider
|
||||
✅ (catchError) previous future completes after transition is no-op
|
||||
✅ previous future completes after transition is no-op
|
||||
✅ transition from future to future preserve state
|
||||
✅ throws if future has error and catchError is missing
|
||||
✅ calls catchError if present and future has error
|
||||
✅ works with null
|
||||
✅ create and dispose future with builder
|
||||
✅ FutureProvider() crashes if builder is null
|
||||
FutureProvider()
|
||||
✅ crashes if builder is null
|
||||
```
|
||||
### ✅ <a id="user-content-r0s5" href="#user-content-r0s5">test/inherited_provider_test.dart</a>
|
||||
```
|
||||
✅ regression test #377
|
||||
✅ rebuild on dependency flags update
|
||||
✅ properly update debug flags if a create triggers another deferred create
|
||||
✅ properly update debug flags if a create triggers another deferred create
|
||||
✅ properly update debug flags if an update triggers another create/update
|
||||
✅ properly update debug flags if a create triggers another create/update
|
||||
✅ Provider.of(listen: false) outside of build works when it loads a provider
|
||||
✅ new value is available in didChangeDependencies
|
||||
✅ builder receives the current value and updates independently from `update`
|
||||
✅ builder can _not_ rebuild when provider updates
|
||||
✅ builder rebuilds if provider is recreated
|
||||
✅ provider.of throws if listen:true outside of the widget tree
|
||||
✅ InheritedProvider throws if no child is provided with default constructor
|
||||
✅ InheritedProvider throws if no child is provided with value constructor
|
||||
✅ DeferredInheritedProvider throws if no child is provided with default constructor
|
||||
✅ DeferredInheritedProvider throws if no child is provided with value constructor
|
||||
✅ startListening markNeedsNotifyDependents
|
||||
✅ InheritedProvider can be subclassed
|
||||
✅ DeferredInheritedProvider can be subclassed
|
||||
✅ can be used with MultiProvider
|
||||
✅ throw if the widget ctor changes
|
||||
✅ InheritedProvider lazy loading can be disabled
|
||||
✅ InheritedProvider.value lazy loading can be disabled
|
||||
✅ InheritedProvider subclass don't have to specify default lazy value
|
||||
✅ DeferredInheritedProvider lazy loading can be disabled
|
||||
✅ DeferredInheritedProvider.value lazy loading can be disabled
|
||||
✅ selector
|
||||
✅ can select multiple types from same provider
|
||||
✅ can select same type on two different providers
|
||||
✅ can select same type twice on same provider
|
||||
✅ Provider.of has a proper error message if context is null
|
||||
diagnostics
|
||||
✅ InheritedProvider.value
|
||||
✅ InheritedProvider doesn't break lazy loading
|
||||
✅ InheritedProvider show if listening
|
||||
✅ DeferredInheritedProvider.value
|
||||
✅ DeferredInheritedProvider
|
||||
InheritedProvider.value()
|
||||
✅ markNeedsNotifyDependents during startListening is noop
|
||||
✅ startListening called again when create returns new value
|
||||
✅ startListening
|
||||
✅ stopListening not called twice if rebuild doesn't have listeners
|
||||
✅ removeListener cannot be null
|
||||
✅ pass down current value
|
||||
✅ default updateShouldNotify
|
||||
✅ custom updateShouldNotify
|
||||
InheritedProvider()
|
||||
✅ hasValue
|
||||
✅ provider calls update if rebuilding only due to didChangeDependencies
|
||||
✅ provider notifying dependents doesn't call update
|
||||
✅ update can call Provider.of with listen:true
|
||||
✅ update lazy loaded can call Provider.of with listen:true
|
||||
✅ markNeedsNotifyDependents during startListening is noop
|
||||
✅ update can obtain parent of the same type than self
|
||||
✅ _debugCheckInvalidValueType
|
||||
✅ startListening
|
||||
✅ startListening called again when create returns new value
|
||||
✅ stopListening not called twice if rebuild doesn't have listeners
|
||||
✅ removeListener cannot be null
|
||||
✅ fails if initialValueBuilder calls inheritFromElement/inheritFromWiggetOfExactType
|
||||
✅ builder is called on every rebuild and after a dependency change
|
||||
✅ builder with no updateShouldNotify use ==
|
||||
✅ builder calls updateShouldNotify callback
|
||||
✅ initialValue is transmitted to valueBuilder
|
||||
✅ calls builder again if dependencies change
|
||||
✅ exposes initialValue if valueBuilder is null
|
||||
✅ call dispose on unmount
|
||||
✅ builder unmount, dispose not called if value never read
|
||||
✅ call dispose after new value
|
||||
✅ valueBuilder works without initialBuilder
|
||||
✅ calls initialValueBuilder lazily once
|
||||
✅ throws if both builder and initialBuilder are missing
|
||||
DeferredInheritedProvider.value()
|
||||
✅ hasValue
|
||||
✅ startListening
|
||||
✅ stopListening cannot be null
|
||||
✅ startListening doesn't need setState if already initialized
|
||||
✅ setState without updateShouldNotify
|
||||
✅ setState with updateShouldNotify
|
||||
✅ startListening never leave the widget uninitialized
|
||||
✅ startListening called again on controller change
|
||||
DeferredInheritedProvider()
|
||||
✅ create can't call inherited widgets
|
||||
✅ creates the value lazily
|
||||
✅ dispose
|
||||
✅ dispose no-op if never built
|
||||
```
|
||||
### ✅ <a id="user-content-r0s6" href="#user-content-r0s6">test/listenable_provider_test.dart</a>
|
||||
```
|
||||
ListenableProvider
|
||||
✅ works with MultiProvider
|
||||
✅ asserts that the created notifier can have listeners
|
||||
✅ don't listen again if listenable instance doesn't change
|
||||
✅ works with null (default)
|
||||
✅ works with null (create)
|
||||
✅ stateful create called once
|
||||
✅ dispose called on unmount
|
||||
✅ dispose can be null
|
||||
✅ changing listenable rebuilds descendants
|
||||
✅ rebuilding with the same provider don't rebuilds descendants
|
||||
✅ notifylistener rebuilds descendants
|
||||
ListenableProvider value constructor
|
||||
✅ pass down key
|
||||
✅ changing the Listenable instance rebuilds dependents
|
||||
ListenableProvider stateful constructor
|
||||
✅ called with context
|
||||
✅ pass down key
|
||||
✅ throws if create is null
|
||||
```
|
||||
### ✅ <a id="user-content-r0s7" href="#user-content-r0s7">test/listenable_proxy_provider_test.dart</a>
|
||||
```
|
||||
ListenableProxyProvider
|
||||
✅ throws if update is missing
|
||||
✅ asserts that the created notifier has no listener
|
||||
✅ asserts that the created notifier has no listener after rebuild
|
||||
✅ rebuilds dependendents when listeners are called
|
||||
✅ update returning a new Listenable disposes the previously created value and update dependents
|
||||
✅ disposes of created value
|
||||
ListenableProxyProvider variants
|
||||
✅ ListenableProxyProvider
|
||||
✅ ListenableProxyProvider2
|
||||
✅ ListenableProxyProvider3
|
||||
✅ ListenableProxyProvider4
|
||||
✅ ListenableProxyProvider5
|
||||
✅ ListenableProxyProvider6
|
||||
```
|
||||
### ✅ <a id="user-content-r0s8" href="#user-content-r0s8">test/multi_provider_test.dart</a>
|
||||
```
|
||||
MultiProvider
|
||||
✅ throw if providers is null
|
||||
✅ MultiProvider children can only access parent providers
|
||||
✅ MultiProvider.providers with ignored child
|
||||
```
|
||||
### ✅ <a id="user-content-r0s9" href="#user-content-r0s9">test/provider_test.dart</a>
|
||||
```
|
||||
✅ works with MultiProvider
|
||||
Provider.of
|
||||
✅ throws if T is dynamic
|
||||
✅ listen defaults to true when building widgets
|
||||
✅ listen defaults to false outside of the widget tree
|
||||
✅ listen:false doesn't trigger rebuild
|
||||
✅ listen:true outside of the widget tree throws
|
||||
Provider
|
||||
✅ throws if the provided value is a Listenable/Stream
|
||||
✅ debugCheckInvalidValueType can be disabled
|
||||
✅ simple usage
|
||||
✅ throws an error if no provider found
|
||||
✅ update should notify
|
||||
```
|
||||
### ✅ <a id="user-content-r0s10" href="#user-content-r0s10">test/proxy_provider_test.dart</a>
|
||||
```
|
||||
ProxyProvider
|
||||
✅ throws if the provided value is a Listenable/Stream
|
||||
✅ debugCheckInvalidValueType can be disabled
|
||||
✅ create creates initial value
|
||||
✅ consume another providers
|
||||
✅ rebuild descendants if value change
|
||||
✅ call dispose when unmounted with the latest result
|
||||
✅ don't rebuild descendants if value doesn't change
|
||||
✅ pass down updateShouldNotify
|
||||
✅ works with MultiProvider
|
||||
✅ update callback can trigger descendants setState synchronously
|
||||
✅ throws if update is null
|
||||
ProxyProvider variants
|
||||
✅ ProxyProvider2
|
||||
✅ ProxyProvider3
|
||||
✅ ProxyProvider4
|
||||
✅ ProxyProvider5
|
||||
✅ ProxyProvider6
|
||||
```
|
||||
### ✅ <a id="user-content-r0s11" href="#user-content-r0s11">test/reassemble_test.dart</a>
|
||||
```
|
||||
✅ ReassembleHandler
|
||||
✅ unevaluated create
|
||||
✅ unevaluated create
|
||||
```
|
||||
### ✅ <a id="user-content-r0s12" href="#user-content-r0s12">test/selector_test.dart</a>
|
||||
```
|
||||
✅ asserts that builder/selector are not null
|
||||
✅ Deep compare maps by default
|
||||
✅ Deep compare iterables by default
|
||||
✅ Deep compare sets by default
|
||||
✅ Deep compare lists by default
|
||||
✅ custom shouldRebuid
|
||||
✅ passes `child` and `key`
|
||||
✅ calls builder if the callback changes
|
||||
✅ works with MultiProvider
|
||||
✅ don't call builder again if it rebuilds but selector returns the same thing
|
||||
✅ call builder again if it rebuilds abd selector returns the a different variable
|
||||
✅ Selector
|
||||
✅ Selector2
|
||||
✅ Selector3
|
||||
✅ Selector4
|
||||
✅ Selector5
|
||||
✅ Selector6
|
||||
```
|
||||
### ✅ <a id="user-content-r0s13" href="#user-content-r0s13">test/stateful_provider_test.dart</a>
|
||||
```
|
||||
✅ asserts
|
||||
✅ works with MultiProvider
|
||||
✅ calls create only once
|
||||
✅ dispose
|
||||
```
|
||||
### ✅ <a id="user-content-r0s14" href="#user-content-r0s14">test/stream_provider_test.dart</a>
|
||||
```
|
||||
✅ works with MultiProvider
|
||||
✅ transition from stream to stream preserve state
|
||||
✅ throws if stream has error and catchError is missing
|
||||
✅ calls catchError if present and stream has error
|
||||
✅ works with null
|
||||
✅ StreamProvider() crashes if builder is null
|
||||
StreamProvider()
|
||||
✅ create and dispose stream with builder
|
||||
✅ crashes if builder is null
|
||||
```
|
||||
### ❌ <a id="user-content-r0s15" href="#user-content-r0s15">test/value_listenable_provider_test.dart</a>
|
||||
```
|
||||
valueListenableProvider
|
||||
✅ rebuilds when value change
|
||||
✅ don't rebuild dependents by default
|
||||
✅ pass keys
|
||||
✅ don't listen again if stream instance doesn't change
|
||||
❌ pass updateShouldNotify
|
||||
The following TestFailure object was thrown running a test:
|
||||
Expected: <2>
|
||||
Actual: <1>
|
||||
Unexpected number of calls
|
||||
|
||||
```
|
||||
@@ -1,13 +1,15 @@
|
||||

|
||||
## <a id="user-content-r0" href="#r0">fixtures/external/java/TEST-org.apache.pulsar.AddMissingPatchVersionTest.xml</a> ❌
|
||||
|Report|Passed|Failed|Skipped|Time|
|
||||
|:---|---:|---:|---:|---:|
|
||||
|[fixtures/external/java/TEST-org.apache.pulsar.AddMissingPatchVersionTest.xml](#user-content-r0)||1 ❌|1 ⚪|116ms|
|
||||
## ❌ <a id="user-content-r0" href="#user-content-r0">fixtures/external/java/TEST-org.apache.pulsar.AddMissingPatchVersionTest.xml</a>
|
||||
**2** tests were completed in **116ms** with **0** passed, **1** failed and **1** skipped.
|
||||
|Test suite|Passed|Failed|Skipped|Time|
|
||||
|:---|---:|---:|---:|---:|
|
||||
|[org.apache.pulsar.AddMissingPatchVersionTest](#r0s0)||1❌|1✖️|116ms|
|
||||
### <a id="user-content-r0s0" href="#r0s0">org.apache.pulsar.AddMissingPatchVersionTest</a> ❌
|
||||
**2** tests were completed in **116ms** with **0** passed, **1** failed and **1** skipped.
|
||||
|
||||
|Result|Test|Time|
|
||||
|:---:|:---|---:|
|
||||
|✖️|testVersionStrings|99ms|
|
||||
|❌|testVersionStrings|17ms|
|
||||
|[org.apache.pulsar.AddMissingPatchVersionTest](#user-content-r0s0)||1 ❌|1 ⚪|116ms|
|
||||
### ❌ <a id="user-content-r0s0" href="#user-content-r0s0">org.apache.pulsar.AddMissingPatchVersionTest</a>
|
||||
```
|
||||
⚪ testVersionStrings
|
||||
❌ testVersionStrings
|
||||
java.lang.AssertionError: expected [1.2.1] but found [1.2.0]
|
||||
```
|
||||
File diff suppressed because it is too large
Load Diff
26
__tests__/__outputs__/python-xunit-pytest.md
Normal file
26
__tests__/__outputs__/python-xunit-pytest.md
Normal file
@@ -0,0 +1,26 @@
|
||||

|
||||
|Report|Passed|Failed|Skipped|Time|
|
||||
|:---|---:|---:|---:|---:|
|
||||
|[fixtures/python-xunit-pytest.xml](#user-content-r0)|6 ✅|2 ❌|2 ⚪|19ms|
|
||||
## ❌ <a id="user-content-r0" href="#user-content-r0">fixtures/python-xunit-pytest.xml</a>
|
||||
**10** tests were completed in **19ms** with **6** passed, **2** failed and **2** skipped.
|
||||
|Test suite|Passed|Failed|Skipped|Time|
|
||||
|:---|---:|---:|---:|---:|
|
||||
|[pytest](#user-content-r0s0)|6 ✅|2 ❌|2 ⚪|19ms|
|
||||
### ❌ <a id="user-content-r0s0" href="#user-content-r0s0">pytest</a>
|
||||
```
|
||||
tests.test_lib
|
||||
✅ test_always_pass
|
||||
✅ test_with_subtests
|
||||
✅ test_parameterized[param1]
|
||||
✅ test_parameterized[param2]
|
||||
⚪ test_always_skip
|
||||
❌ test_always_fail
|
||||
assert False
|
||||
⚪ test_expected_failure
|
||||
❌ test_error
|
||||
Exception: error
|
||||
✅ test_with_record_property
|
||||
custom_classname
|
||||
✅ test_with_record_xml_attribute
|
||||
```
|
||||
23
__tests__/__outputs__/python-xunit-unittest.md
Normal file
23
__tests__/__outputs__/python-xunit-unittest.md
Normal file
@@ -0,0 +1,23 @@
|
||||

|
||||
|Report|Passed|Failed|Skipped|Time|
|
||||
|:---|---:|---:|---:|---:|
|
||||
|[fixtures/python-xunit-unittest.xml](#user-content-r0)|4 ✅|2 ❌|2 ⚪|1ms|
|
||||
## ❌ <a id="user-content-r0" href="#user-content-r0">fixtures/python-xunit-unittest.xml</a>
|
||||
**8** tests were completed in **1ms** with **4** passed, **2** failed and **2** skipped.
|
||||
|Test suite|Passed|Failed|Skipped|Time|
|
||||
|:---|---:|---:|---:|---:|
|
||||
|[TestAcme-20251114214921](#user-content-r0s0)|4 ✅|2 ❌|2 ⚪|1ms|
|
||||
### ❌ <a id="user-content-r0s0" href="#user-content-r0s0">TestAcme-20251114214921</a>
|
||||
```
|
||||
TestAcme
|
||||
✅ test_always_pass
|
||||
✅ test_parameterized_0_param1
|
||||
✅ test_parameterized_1_param2
|
||||
✅ test_with_subtests
|
||||
❌ test_always_fail
|
||||
AssertionError: failed
|
||||
❌ test_error
|
||||
Exception: error
|
||||
⚪ test_always_skip
|
||||
⚪ test_expected_failure
|
||||
```
|
||||
19
__tests__/__outputs__/rspec-json.md
Normal file
19
__tests__/__outputs__/rspec-json.md
Normal file
@@ -0,0 +1,19 @@
|
||||

|
||||
|Report|Passed|Failed|Skipped|Time|
|
||||
|:---|---:|---:|---:|---:|
|
||||
|[fixtures/rspec-json.json](#user-content-r0)|1 ✅|1 ❌|1 ⚪|0ms|
|
||||
## ❌ <a id="user-content-r0" href="#user-content-r0">fixtures/rspec-json.json</a>
|
||||
**3** tests were completed in **0ms** with **1** passed, **1** failed and **1** skipped.
|
||||
|Test suite|Passed|Failed|Skipped|Time|
|
||||
|:---|---:|---:|---:|---:|
|
||||
|[./spec/config/check_env_vars_spec.rb](#user-content-r0s0)|1 ✅|1 ❌|1 ⚪|0ms|
|
||||
### ❌ <a id="user-content-r0s0" href="#user-content-r0s0">./spec/config/check_env_vars_spec.rb</a>
|
||||
```
|
||||
CheckEnvVars#call when all env vars are defined behaves like success load
|
||||
❌ CheckEnvVars#call when all env vars are defined behaves like success load fails in assertion
|
||||
(#ActiveSupport::BroadcastLogger:0x00007f1007fedf58).debug("All config env vars exist")
|
||||
expected: 0 times with arguments: ("All config env vars exist")
|
||||
received: 1 time with arguments: ("All config env vars exist")
|
||||
✅ CheckEnvVars#call when all env vars are defined behaves like success load logs success message
|
||||
⚪ CheckEnvVars#call when all env vars are defined behaves like success load skips the test
|
||||
```
|
||||
142
__tests__/__outputs__/silent-notes-test-results.md
Normal file
142
__tests__/__outputs__/silent-notes-test-results.md
Normal file
@@ -0,0 +1,142 @@
|
||||

|
||||
<details><summary>Expand for details</summary>
|
||||
|
||||
|Report|Passed|Failed|Skipped|Time|
|
||||
|:---|---:|---:|---:|---:|
|
||||
|[fixtures/external/SilentNotes.trx](#user-content-r0)|67 ✅||12 ⚪|1s|
|
||||
## ✅ <a id="user-content-r0" href="#user-content-r0">fixtures/external/SilentNotes.trx</a>
|
||||
**79** tests were completed in **1s** with **67** passed, **0** failed and **12** skipped.
|
||||
|Test suite|Passed|Failed|Skipped|Time|
|
||||
|:---|---:|---:|---:|---:|
|
||||
|[VanillaCloudStorageClientTest.CloudStorageCredentialsTest](#user-content-r0s0)|6 ✅|||30ms|
|
||||
|[VanillaCloudStorageClientTest.CloudStorageProviders.DropboxCloudStorageClientTest](#user-content-r0s1)|2 ✅||3 ⚪|101ms|
|
||||
|[VanillaCloudStorageClientTest.CloudStorageProviders.FtpCloudStorageClientTest](#user-content-r0s2)|4 ✅||3 ⚪|166ms|
|
||||
|[VanillaCloudStorageClientTest.CloudStorageProviders.GmxCloudStorageClientTest](#user-content-r0s3)|2 ✅|||7ms|
|
||||
|[VanillaCloudStorageClientTest.CloudStorageProviders.GoogleCloudStorageClientTest](#user-content-r0s4)|1 ✅||3 ⚪|40ms|
|
||||
|[VanillaCloudStorageClientTest.CloudStorageProviders.OnedriveCloudStorageClientTest](#user-content-r0s5)|1 ✅||3 ⚪|15ms|
|
||||
|[VanillaCloudStorageClientTest.CloudStorageProviders.WebdavCloudStorageClientTest](#user-content-r0s6)|5 ✅|||16ms|
|
||||
|[VanillaCloudStorageClientTest.CloudStorageTokenTest](#user-content-r0s7)|9 ✅|||0ms|
|
||||
|[VanillaCloudStorageClientTest.OAuth2.AuthorizationResponseErrorTest](#user-content-r0s8)|3 ✅|||3ms|
|
||||
|[VanillaCloudStorageClientTest.OAuth2.OAuth2UtilsTest](#user-content-r0s9)|9 ✅|||12ms|
|
||||
|[VanillaCloudStorageClientTest.OAuth2CloudStorageClientTest](#user-content-r0s10)|5 ✅|||13ms|
|
||||
|[VanillaCloudStorageClientTest.SecureStringExtensionsTest](#user-content-r0s11)|7 ✅|||0ms|
|
||||
|[VanillaCloudStorageClientTest.SerializeableCloudStorageCredentialsTest](#user-content-r0s12)|13 ✅|||43ms|
|
||||
### ✅ <a id="user-content-r0s0" href="#user-content-r0s0">VanillaCloudStorageClientTest.CloudStorageCredentialsTest</a>
|
||||
```
|
||||
✅ AreEqualWorksWithDifferentPassword
|
||||
✅ AreEqualWorksWithSameContent
|
||||
✅ CorrectlyConvertsSecureStringToString
|
||||
✅ CorrectlyConvertsStringToSecureString
|
||||
✅ ValidateAcceptsValidCredentials
|
||||
✅ ValidateRejectsInvalidCredentials
|
||||
```
|
||||
### ✅ <a id="user-content-r0s1" href="#user-content-r0s1">VanillaCloudStorageClientTest.CloudStorageProviders.DropboxCloudStorageClientTest</a>
|
||||
```
|
||||
✅ FileLifecycleWorks
|
||||
⚪ ReallyDoFetchToken
|
||||
⚪ ReallyDoOpenAuthorizationPageInBrowser
|
||||
⚪ ReallyDoRefreshToken
|
||||
✅ ThrowsAccessDeniedExceptionWithInvalidToken
|
||||
```
|
||||
### ✅ <a id="user-content-r0s2" href="#user-content-r0s2">VanillaCloudStorageClientTest.CloudStorageProviders.FtpCloudStorageClientTest</a>
|
||||
```
|
||||
✅ FileLifecycleWorks
|
||||
✅ SanitizeCredentials_ChangesInvalidPrefix
|
||||
✅ SecureSslConnectionWorks
|
||||
✅ ThrowsWithHttpInsteadOfFtp
|
||||
⚪ ThrowsWithInvalidPassword
|
||||
⚪ ThrowsWithInvalidUrl
|
||||
⚪ ThrowsWithInvalidUsername
|
||||
```
|
||||
### ✅ <a id="user-content-r0s3" href="#user-content-r0s3">VanillaCloudStorageClientTest.CloudStorageProviders.GmxCloudStorageClientTest</a>
|
||||
```
|
||||
✅ ChoosesCorrectUrlForGmxComEmail
|
||||
✅ ChoosesCorrectUrlForGmxNetEmail
|
||||
```
|
||||
### ✅ <a id="user-content-r0s4" href="#user-content-r0s4">VanillaCloudStorageClientTest.CloudStorageProviders.GoogleCloudStorageClientTest</a>
|
||||
```
|
||||
✅ FileLifecycleWorks
|
||||
⚪ ReallyDoFetchToken
|
||||
⚪ ReallyDoOpenAuthorizationPageInBrowser
|
||||
⚪ ReallyDoRefreshToken
|
||||
```
|
||||
### ✅ <a id="user-content-r0s5" href="#user-content-r0s5">VanillaCloudStorageClientTest.CloudStorageProviders.OnedriveCloudStorageClientTest</a>
|
||||
```
|
||||
✅ FileLifecycleWorks
|
||||
⚪ ReallyDoFetchToken
|
||||
⚪ ReallyDoOpenAuthorizationPageInBrowser
|
||||
⚪ ReallyDoRefreshToken
|
||||
```
|
||||
### ✅ <a id="user-content-r0s6" href="#user-content-r0s6">VanillaCloudStorageClientTest.CloudStorageProviders.WebdavCloudStorageClientTest</a>
|
||||
```
|
||||
✅ FileLifecycleWorks
|
||||
✅ ParseGmxWebdavResponseCorrectly
|
||||
✅ ParseStratoWebdavResponseCorrectly
|
||||
✅ ThrowsWithInvalidPath
|
||||
✅ ThrowsWithInvalidUsername
|
||||
```
|
||||
### ✅ <a id="user-content-r0s7" href="#user-content-r0s7">VanillaCloudStorageClientTest.CloudStorageTokenTest</a>
|
||||
```
|
||||
✅ AreEqualWorksWithNullDate
|
||||
✅ AreEqualWorksWithSameContent
|
||||
✅ NeedsRefreshReturnsFalseForTokenFlow
|
||||
✅ NeedsRefreshReturnsFalseIfNotExpired
|
||||
✅ NeedsRefreshReturnsTrueIfExpired
|
||||
✅ NeedsRefreshReturnsTrueIfNoExpirationDate
|
||||
✅ SetExpiryDateBySecondsWorks
|
||||
✅ SetExpiryDateBySecondsWorksWithNull
|
||||
✅ SetExpiryDateBySecondsWorksWithVeryShortPeriod
|
||||
```
|
||||
### ✅ <a id="user-content-r0s8" href="#user-content-r0s8">VanillaCloudStorageClientTest.OAuth2.AuthorizationResponseErrorTest</a>
|
||||
```
|
||||
✅ ParsesAllErrorCodesCorrectly
|
||||
✅ ParsesNullErrorCodeCorrectly
|
||||
✅ ParsesUnknownErrorCodeCorrectly
|
||||
```
|
||||
### ✅ <a id="user-content-r0s9" href="#user-content-r0s9">VanillaCloudStorageClientTest.OAuth2.OAuth2UtilsTest</a>
|
||||
```
|
||||
✅ BuildAuthorizationRequestUrlEscapesParameters
|
||||
✅ BuildAuthorizationRequestUrlLeavesOutOptionalParameters
|
||||
✅ BuildAuthorizationRequestUrlThrowsWithMissingRedirectUrlForTokenFlow
|
||||
✅ BuildAuthorizationRequestUrlUsesAllParameters
|
||||
✅ BuildAuthorizationRequestUrlUsesCodeVerifier
|
||||
✅ ParseRealWorldDropboxRejectResponse
|
||||
✅ ParseRealWorldDropboxSuccessResponse
|
||||
✅ ParseRealWorldGoogleRejectResponse
|
||||
✅ ParseRealWorldGoogleSuccessResponse
|
||||
```
|
||||
### ✅ <a id="user-content-r0s10" href="#user-content-r0s10">VanillaCloudStorageClientTest.OAuth2CloudStorageClientTest</a>
|
||||
```
|
||||
✅ BuildOAuth2AuthorizationRequestUrlWorks
|
||||
✅ FetchTokenCanInterpretGoogleResponse
|
||||
✅ FetchTokenReturnsNullForDeniedAccess
|
||||
✅ FetchTokenThrowsWithWrongState
|
||||
✅ RefreshTokenCanInterpretGoogleResponse
|
||||
```
|
||||
### ✅ <a id="user-content-r0s11" href="#user-content-r0s11">VanillaCloudStorageClientTest.SecureStringExtensionsTest</a>
|
||||
```
|
||||
✅ AreEqualsWorksCorrectly
|
||||
✅ CorrectlyConvertsSecureStringToString
|
||||
✅ CorrectlyConvertsSecureStringToUnicodeBytes
|
||||
✅ CorrectlyConvertsSecureStringToUtf8Bytes
|
||||
✅ CorrectlyConvertsStringToSecureString
|
||||
✅ CorrectlyConvertsUnicodeBytesToSecureString
|
||||
✅ CorrectlyConvertsUtf8BytesToSecureString
|
||||
```
|
||||
### ✅ <a id="user-content-r0s12" href="#user-content-r0s12">VanillaCloudStorageClientTest.SerializeableCloudStorageCredentialsTest</a>
|
||||
```
|
||||
✅ DecryptAfterDesrializationCanReadAllPropertiesBack
|
||||
✅ DecryptAfterDesrializationRespectsNullProperties
|
||||
✅ EncryptBeforeSerializationProtectsAllNecessaryProperties
|
||||
✅ EncryptBeforeSerializationRespectsNullProperties
|
||||
✅ SerializedDatacontractCanBeReadBack
|
||||
✅ SerializedDatacontractDoesNotContainNullProperties
|
||||
✅ SerializedDatacontractDoesNotContainPlaintextData
|
||||
✅ SerializedJsonCanBeReadBack
|
||||
✅ SerializedJsonDoesNotContainNullProperties
|
||||
✅ SerializedJsonDoesNotContainPlaintextData
|
||||
✅ SerializedXmlCanBeReadBack
|
||||
✅ SerializedXmlDoesNotContainNullProperties
|
||||
✅ SerializedXmlDoesNotContainPlaintextData
|
||||
```
|
||||
</details>
|
||||
17
__tests__/__outputs__/swift-xunit.md
Normal file
17
__tests__/__outputs__/swift-xunit.md
Normal file
@@ -0,0 +1,17 @@
|
||||

|
||||
|Report|Passed|Failed|Skipped|Time|
|
||||
|:---|---:|---:|---:|---:|
|
||||
|[fixtures/swift-xunit.xml](#user-content-r0)|2 ✅|1 ❌||220ms|
|
||||
## ❌ <a id="user-content-r0" href="#user-content-r0">fixtures/swift-xunit.xml</a>
|
||||
**3** tests were completed in **220ms** with **2** passed, **1** failed and **0** skipped.
|
||||
|Test suite|Passed|Failed|Skipped|Time|
|
||||
|:---|---:|---:|---:|---:|
|
||||
|[TestResults](#user-content-r0s0)|2 ✅|1 ❌||220ms|
|
||||
### ❌ <a id="user-content-r0s0" href="#user-content-r0s0">TestResults</a>
|
||||
```
|
||||
AcmeLibTests.AcmeLibTests
|
||||
✅ test_always_pass
|
||||
✅ test_always_skip
|
||||
❌ test_always_fail
|
||||
failed
|
||||
```
|
||||
20
__tests__/__outputs__/tester-bootstrap-test-results.md
Normal file
20
__tests__/__outputs__/tester-bootstrap-test-results.md
Normal file
@@ -0,0 +1,20 @@
|
||||

|
||||
<details><summary>Expand for details</summary>
|
||||
|
||||
|Report|Passed|Failed|Skipped|Time|
|
||||
|:---|---:|---:|---:|---:|
|
||||
|[fixtures/nette-tester/BootstrapFormRenderer-report.xml](#user-content-r0)|4 ✅|||300ms|
|
||||
## ✅ <a id="user-content-r0" href="#user-content-r0">fixtures/nette-tester/BootstrapFormRenderer-report.xml</a>
|
||||
**4** tests were completed in **300ms** with **4** passed, **0** failed and **0** skipped.
|
||||
|Test suite|Passed|Failed|Skipped|Time|
|
||||
|:---|---:|---:|---:|---:|
|
||||
|[BootstrapFormRenderer-report.xml](#user-content-r0s0)|4 ✅|||300ms|
|
||||
### ✅ <a id="user-content-r0s0" href="#user-content-r0s0">BootstrapFormRenderer-report.xml</a>
|
||||
```
|
||||
KdybyTests/BootstrapFormRenderer
|
||||
✅ BootstrapRendererTest.phpt::testRenderingBasics
|
||||
✅ BootstrapRendererTest.phpt::testRenderingIndividual
|
||||
✅ BootstrapRendererTest.phpt::testRenderingComponents
|
||||
✅ BootstrapRendererTest.phpt::testMultipleFormsInTemplate
|
||||
```
|
||||
</details>
|
||||
87
__tests__/__outputs__/tester-v1.7-test-results.md
Normal file
87
__tests__/__outputs__/tester-v1.7-test-results.md
Normal file
@@ -0,0 +1,87 @@
|
||||

|
||||
|Report|Passed|Failed|Skipped|Time|
|
||||
|:---|---:|---:|---:|---:|
|
||||
|[fixtures/nette-tester/tester-v1.7-report.xml](#user-content-r0)|61 ✅|1 ❌|3 ⚪|2s|
|
||||
## ❌ <a id="user-content-r0" href="#user-content-r0">fixtures/nette-tester/tester-v1.7-report.xml</a>
|
||||
**65** tests were completed in **2s** with **61** passed, **1** failed and **3** skipped.
|
||||
|Test suite|Passed|Failed|Skipped|Time|
|
||||
|:---|---:|---:|---:|---:|
|
||||
|[tester-v1.7-report.xml](#user-content-r0s0)|61 ✅|1 ❌|3 ⚪|2s|
|
||||
### ❌ <a id="user-content-r0s0" href="#user-content-r0s0">tester-v1.7-report.xml</a>
|
||||
```
|
||||
tests/Framework
|
||||
⚪ Dumper.toPhp.php7.phpt
|
||||
✅ Assert.contains.phpt
|
||||
✅ Assert.count.phpt
|
||||
✅ Assert.equal.phpt
|
||||
✅ Assert.equal.recursive.phpt::testSimple
|
||||
✅ Assert.equal.recursive.phpt::testMultiple
|
||||
✅ Assert.equal.recursive.phpt::testDeep
|
||||
✅ Assert.equal.recursive.phpt::testCross
|
||||
✅ Assert.equal.recursive.phpt::testThirdParty
|
||||
✅ Assert.error.phpt
|
||||
✅ Assert.exception.phpt
|
||||
✅ Assert.false.phpt
|
||||
✅ Assert.match.phpt
|
||||
✅ Assert.match.regexp.phpt
|
||||
✅ Assert.nan.phpt
|
||||
✅ Assert.noError.phpt
|
||||
✅ Assert.same.phpt
|
||||
✅ Assert.null.phpt
|
||||
✅ Assert.true.phpt
|
||||
✅ Assert.truthy.phpt
|
||||
✅ DataProvider.load.phpt
|
||||
✅ Assert.type.phpt
|
||||
✅ DataProvider.parseAnnotation.phpt
|
||||
✅ DataProvider.testQuery.phpt
|
||||
✅ DomQuery.css2Xpath.phpt
|
||||
✅ DomQuery.fromHtml.phpt
|
||||
✅ DomQuery.fromXml.phpt
|
||||
✅ Dumper.dumpException.phpt
|
||||
✅ Dumper.color.phpt
|
||||
✅ Dumper.toLine.phpt
|
||||
✅ Dumper.toPhp.recursion.phpt
|
||||
✅ Dumper.toPhp.phpt
|
||||
✅ FileMock.phpt
|
||||
✅ Helpers.escapeArg.phpt
|
||||
✅ Helpers.parseDocComment.phpt
|
||||
✅ TestCase.annotationThrows.phpt
|
||||
✅ TestCase.annotationThrows.setUp.tearDown.phpt
|
||||
✅ TestCase.annotationThrows.syntax.phpt
|
||||
✅ TestCase.basic.phpt
|
||||
✅ TestCase.dataProvider.generator.phpt
|
||||
✅ TestCase.dataProvider.phpt
|
||||
✅ TestCase.invalidMethods.phpt
|
||||
✅ TestCase.invalidProvider.phpt
|
||||
✅ TestCase.order.error.phpt
|
||||
✅ TestCase.order.errorMuted.phpt
|
||||
✅ TestCase.order.phpt
|
||||
✅ Prevent loop in error handling. The #268 regression. (TestCase.ownErrorHandler.phpt)
|
||||
tests/CodeCoverage
|
||||
⚪ Collector.start.phpt
|
||||
✅ PhpParser.parse.lines.phpt
|
||||
✅ PhpParser.parse.methods.phpt
|
||||
✅ CloverXMLGenerator.phpt
|
||||
✅ PhpParser.parse.edge.phpt
|
||||
✅ PhpParser.parse.lines-of-code.phpt
|
||||
✅ PhpParser.parse.namespaces.phpt
|
||||
tests/Runner
|
||||
✅ CommandLine.phpt
|
||||
⚪ HhvmPhpInterpreter.phpt
|
||||
✅ Runner.find-tests.phpt
|
||||
✅ Job.phpt
|
||||
✅ ZendPhpExecutable.phpt
|
||||
✅ Runner.multiple.phpt
|
||||
✅ Runner.edge.phpt
|
||||
✅ Runner.stop-on-fail.phpt
|
||||
❌ Runner.multiple-fails.phpt
|
||||
Failed: '... in /Users/izso/Developer/nette/tester/tests/Runner/multiple-fails/...' should match
|
||||
... '..., unexpected end of file in %a%testcase-syntax-error.phptx on line ...'
|
||||
|
||||
diff '/Users/izso/Developer/nette/tester/tests/Runner/output/Runner.multiple-fails.expected' '/Users/izso/Developer/nette/tester/tests/Runner/output/Runner.multiple-fails.actual'
|
||||
|
||||
in tests/Runner/Runner.multiple-fails.phpt(78) Tester\Assert::match()
|
||||
✅ Runner.annotations.phpt
|
||||
tests/RunnerOutput
|
||||
✅ JUnitPrinter.phpt
|
||||
```
|
||||
File diff suppressed because it is too large
Load Diff
107
__tests__/__snapshots__/dotnet-nunit.test.ts.snap
Normal file
107
__tests__/__snapshots__/dotnet-nunit.test.ts.snap
Normal file
@@ -0,0 +1,107 @@
|
||||
// Jest Snapshot v1, https://jestjs.io/docs/snapshot-testing
|
||||
|
||||
exports[`dotnet-nunit tests report from ./reports/dotnet test results matches snapshot 1`] = `
|
||||
TestRunResult {
|
||||
"path": "fixtures/dotnet-nunit.xml",
|
||||
"suites": [
|
||||
TestSuiteResult {
|
||||
"groups": [
|
||||
TestGroupResult {
|
||||
"name": "CalculatorTests",
|
||||
"tests": [
|
||||
TestCaseResult {
|
||||
"error": undefined,
|
||||
"name": "Is_Even_Number(2)",
|
||||
"result": "success",
|
||||
"time": 0.622,
|
||||
},
|
||||
TestCaseResult {
|
||||
"error": {
|
||||
"details": " at DotnetTests.XUnitTests.CalculatorTests.Is_Even_Number(Int32 i) in C:\\Users\\Michal\\Workspace\\dorny\\test-reporter\\reports\\dotnet\\DotnetTests.NUnitV3Tests\\CalculatorTests.cs:line 61
|
||||
",
|
||||
"line": undefined,
|
||||
"message": " Expected: True
|
||||
But was: False
|
||||
",
|
||||
"path": undefined,
|
||||
},
|
||||
"name": "Is_Even_Number(3)",
|
||||
"result": "failed",
|
||||
"time": 1.098,
|
||||
},
|
||||
TestCaseResult {
|
||||
"error": {
|
||||
"details": " at DotnetTests.Unit.Calculator.Div(Int32 a, Int32 b) in C:\\Users\\Michal\\Workspace\\dorny\\test-reporter\\reports\\dotnet\\DotnetTests.Unit\\Calculator.cs:line 9
|
||||
at DotnetTests.XUnitTests.CalculatorTests.Exception_In_TargetTest() in C:\\Users\\Michal\\Workspace\\dorny\\test-reporter\\reports\\dotnet\\DotnetTests.NUnitV3Tests\\CalculatorTests.cs:line 33",
|
||||
"line": undefined,
|
||||
"message": "System.DivideByZeroException : Attempted to divide by zero.",
|
||||
"path": undefined,
|
||||
},
|
||||
"name": "Exception_In_TargetTest",
|
||||
"result": "failed",
|
||||
"time": 22.805,
|
||||
},
|
||||
TestCaseResult {
|
||||
"error": {
|
||||
"details": " at DotnetTests.XUnitTests.CalculatorTests.Exception_In_Test() in C:\\Users\\Michal\\Workspace\\dorny\\test-reporter\\reports\\dotnet\\DotnetTests.NUnitV3Tests\\CalculatorTests.cs:line 39",
|
||||
"line": undefined,
|
||||
"message": "System.Exception : Test",
|
||||
"path": undefined,
|
||||
},
|
||||
"name": "Exception_In_Test",
|
||||
"result": "failed",
|
||||
"time": 0.528,
|
||||
},
|
||||
TestCaseResult {
|
||||
"error": {
|
||||
"details": " at DotnetTests.XUnitTests.CalculatorTests.Failing_Test() in C:\\Users\\Michal\\Workspace\\dorny\\test-reporter\\reports\\dotnet\\DotnetTests.NUnitV3Tests\\CalculatorTests.cs:line 27
|
||||
",
|
||||
"line": undefined,
|
||||
"message": " Expected: 3
|
||||
But was: 2
|
||||
",
|
||||
"path": undefined,
|
||||
},
|
||||
"name": "Failing_Test",
|
||||
"result": "failed",
|
||||
"time": 28.162,
|
||||
},
|
||||
TestCaseResult {
|
||||
"error": undefined,
|
||||
"name": "Passing_Test",
|
||||
"result": "success",
|
||||
"time": 0.23800000000000002,
|
||||
},
|
||||
TestCaseResult {
|
||||
"error": undefined,
|
||||
"name": "Passing_Test_With_Description",
|
||||
"result": "success",
|
||||
"time": 0.135,
|
||||
},
|
||||
TestCaseResult {
|
||||
"error": undefined,
|
||||
"name": "Skipped_Test",
|
||||
"result": "skipped",
|
||||
"time": 0.398,
|
||||
},
|
||||
TestCaseResult {
|
||||
"error": {
|
||||
"details": "",
|
||||
"line": undefined,
|
||||
"message": "",
|
||||
"path": undefined,
|
||||
},
|
||||
"name": "Timeout_Test",
|
||||
"result": "failed",
|
||||
"time": 14.949,
|
||||
},
|
||||
],
|
||||
},
|
||||
],
|
||||
"name": "DotnetTests.NUnitV3Tests.dll.DotnetTests.XUnitTests",
|
||||
"totalTime": undefined,
|
||||
},
|
||||
],
|
||||
"totalTime": 230.30800000000002,
|
||||
}
|
||||
`;
|
||||
File diff suppressed because it is too large
Load Diff
131
__tests__/__snapshots__/golang-json.test.ts.snap
Normal file
131
__tests__/__snapshots__/golang-json.test.ts.snap
Normal file
@@ -0,0 +1,131 @@
|
||||
// Jest Snapshot v1, https://jestjs.io/docs/snapshot-testing
|
||||
|
||||
exports[`golang-json tests report from ./reports/dotnet test results matches snapshot 1`] = `
|
||||
TestRunResult {
|
||||
"path": "fixtures/golang-json.json",
|
||||
"suites": [
|
||||
TestSuiteResult {
|
||||
"groups": [
|
||||
TestGroupResult {
|
||||
"name": null,
|
||||
"tests": [
|
||||
TestCaseResult {
|
||||
"error": undefined,
|
||||
"name": "TestPassing",
|
||||
"result": "success",
|
||||
"time": 60,
|
||||
},
|
||||
TestCaseResult {
|
||||
"error": {
|
||||
"details": "calculator_test.go:19: expected 1+1 = 3, got 2
|
||||
",
|
||||
"message": "calculator_test.go:19: expected 1+1 = 3, got 2
|
||||
",
|
||||
},
|
||||
"name": "TestFailing",
|
||||
"result": "failed",
|
||||
"time": 890,
|
||||
},
|
||||
TestCaseResult {
|
||||
"error": {
|
||||
"details": "calculator_test.go:76: caught panic: runtime error: integer divide by zero
|
||||
",
|
||||
"message": "calculator_test.go:76: caught panic: runtime error: integer divide by zero
|
||||
",
|
||||
},
|
||||
"name": "TestPanicInsideFunction",
|
||||
"result": "failed",
|
||||
"time": 0,
|
||||
},
|
||||
TestCaseResult {
|
||||
"error": {
|
||||
"details": "calculator_test.go:76: caught panic: bad stuff
|
||||
",
|
||||
"message": "calculator_test.go:76: caught panic: bad stuff
|
||||
",
|
||||
},
|
||||
"name": "TestPanicInsideTest",
|
||||
"result": "failed",
|
||||
"time": 0,
|
||||
},
|
||||
TestCaseResult {
|
||||
"error": {
|
||||
"details": "calculator_test.go:45: skipping test
|
||||
",
|
||||
"message": "calculator_test.go:45: skipping test
|
||||
",
|
||||
},
|
||||
"name": "TestSkipped",
|
||||
"result": "skipped",
|
||||
"time": 940,
|
||||
},
|
||||
TestCaseResult {
|
||||
"error": {
|
||||
"details": "",
|
||||
"message": "",
|
||||
},
|
||||
"name": "TestCases",
|
||||
"result": "failed",
|
||||
"time": 2250,
|
||||
},
|
||||
],
|
||||
},
|
||||
TestGroupResult {
|
||||
"name": "TestCases",
|
||||
"tests": [
|
||||
TestCaseResult {
|
||||
"error": undefined,
|
||||
"name": "1_+_2_=_3",
|
||||
"result": "success",
|
||||
"time": 400,
|
||||
},
|
||||
TestCaseResult {
|
||||
"error": undefined,
|
||||
"name": "4_+_7_=_11",
|
||||
"result": "success",
|
||||
"time": 460,
|
||||
},
|
||||
TestCaseResult {
|
||||
"error": {
|
||||
"details": "calculator_test.go:67: expected 2 + 3 = 4, got 5
|
||||
",
|
||||
"message": "calculator_test.go:67: expected 2 + 3 = 4, got 5
|
||||
",
|
||||
},
|
||||
"name": "2_+_3_=_4",
|
||||
"result": "failed",
|
||||
"time": 90,
|
||||
},
|
||||
TestCaseResult {
|
||||
"error": {
|
||||
"details": "calculator_test.go:67: expected 1 / 2 = 1, got 0
|
||||
",
|
||||
"message": "calculator_test.go:67: expected 1 / 2 = 1, got 0
|
||||
",
|
||||
},
|
||||
"name": "1_/_2_=_1",
|
||||
"result": "failed",
|
||||
"time": 920,
|
||||
},
|
||||
TestCaseResult {
|
||||
"error": undefined,
|
||||
"name": "9_/_3_=_3",
|
||||
"result": "success",
|
||||
"time": 340,
|
||||
},
|
||||
TestCaseResult {
|
||||
"error": undefined,
|
||||
"name": "14_/_7_=_2",
|
||||
"result": "success",
|
||||
"time": 40,
|
||||
},
|
||||
],
|
||||
},
|
||||
],
|
||||
"name": "_/home/james_t/git/test-reporter/reports/go",
|
||||
"totalTime": undefined,
|
||||
},
|
||||
],
|
||||
"totalTime": undefined,
|
||||
}
|
||||
`;
|
||||
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
7587
__tests__/__snapshots__/mocha-json.test.ts.snap
Normal file
7587
__tests__/__snapshots__/mocha-json.test.ts.snap
Normal file
File diff suppressed because it is too large
Load Diff
628
__tests__/__snapshots__/phpunit-junit.test.ts.snap
Normal file
628
__tests__/__snapshots__/phpunit-junit.test.ts.snap
Normal file
@@ -0,0 +1,628 @@
|
||||
// Jest Snapshot v1, https://jestjs.io/docs/snapshot-testing
|
||||
|
||||
exports[`phpunit-junit tests report from junit-basic.xml matches snapshot 1`] = `
|
||||
TestRunResult {
|
||||
"path": "fixtures/external/phpunit/junit-basic.xml",
|
||||
"suites": [
|
||||
TestSuiteResult {
|
||||
"groups": [
|
||||
TestGroupResult {
|
||||
"name": "",
|
||||
"tests": [
|
||||
TestCaseResult {
|
||||
"error": undefined,
|
||||
"name": "testCase1",
|
||||
"result": "success",
|
||||
"time": 2113.871,
|
||||
},
|
||||
TestCaseResult {
|
||||
"error": undefined,
|
||||
"name": "testCase2",
|
||||
"result": "success",
|
||||
"time": 1051,
|
||||
},
|
||||
TestCaseResult {
|
||||
"error": undefined,
|
||||
"name": "testCase3",
|
||||
"result": "success",
|
||||
"time": 3441,
|
||||
},
|
||||
],
|
||||
},
|
||||
],
|
||||
"name": "Tests.Registration",
|
||||
"totalTime": 6605.870999999999,
|
||||
},
|
||||
TestSuiteResult {
|
||||
"groups": [
|
||||
TestGroupResult {
|
||||
"name": "",
|
||||
"tests": [
|
||||
TestCaseResult {
|
||||
"error": undefined,
|
||||
"name": "testCase4",
|
||||
"result": "success",
|
||||
"time": 2244,
|
||||
},
|
||||
TestCaseResult {
|
||||
"error": undefined,
|
||||
"name": "testCase5",
|
||||
"result": "success",
|
||||
"time": 781,
|
||||
},
|
||||
TestCaseResult {
|
||||
"error": undefined,
|
||||
"name": "testCase6",
|
||||
"result": "success",
|
||||
"time": 1331,
|
||||
},
|
||||
],
|
||||
},
|
||||
],
|
||||
"name": "Tests.Authentication.Login",
|
||||
"totalTime": 4356,
|
||||
},
|
||||
TestSuiteResult {
|
||||
"groups": [
|
||||
TestGroupResult {
|
||||
"name": "",
|
||||
"tests": [
|
||||
TestCaseResult {
|
||||
"error": undefined,
|
||||
"name": "testCase7",
|
||||
"result": "success",
|
||||
"time": 2508,
|
||||
},
|
||||
TestCaseResult {
|
||||
"error": undefined,
|
||||
"name": "testCase8",
|
||||
"result": "success",
|
||||
"time": 1230.8159999999998,
|
||||
},
|
||||
TestCaseResult {
|
||||
"error": {
|
||||
"details": "",
|
||||
"line": undefined,
|
||||
"message": "AssertionError: Assertion error message",
|
||||
"path": undefined,
|
||||
},
|
||||
"name": "testCase9",
|
||||
"result": "failed",
|
||||
"time": 982,
|
||||
},
|
||||
],
|
||||
},
|
||||
],
|
||||
"name": "Tests.Authentication",
|
||||
"totalTime": 9076.816,
|
||||
},
|
||||
],
|
||||
"totalTime": 15682.687,
|
||||
}
|
||||
`;
|
||||
|
||||
exports[`phpunit-junit tests report from phpcheckstyle-phpunit.xml matches snapshot 1`] = `
|
||||
TestRunResult {
|
||||
"path": "fixtures/external/phpunit/phpcheckstyle-phpunit.xml",
|
||||
"suites": [
|
||||
TestSuiteResult {
|
||||
"groups": [
|
||||
TestGroupResult {
|
||||
"name": "",
|
||||
"tests": [
|
||||
TestCaseResult {
|
||||
"error": undefined,
|
||||
"name": "testGoodDoc",
|
||||
"result": "success",
|
||||
"time": 5.093,
|
||||
},
|
||||
TestCaseResult {
|
||||
"error": undefined,
|
||||
"name": "testComments",
|
||||
"result": "success",
|
||||
"time": 0.921,
|
||||
},
|
||||
TestCaseResult {
|
||||
"error": undefined,
|
||||
"name": "testTODOs",
|
||||
"result": "success",
|
||||
"time": 0.6880000000000001,
|
||||
},
|
||||
],
|
||||
},
|
||||
],
|
||||
"name": "CommentsTest",
|
||||
"totalTime": 6.702,
|
||||
},
|
||||
TestSuiteResult {
|
||||
"groups": [
|
||||
TestGroupResult {
|
||||
"name": "",
|
||||
"tests": [
|
||||
TestCaseResult {
|
||||
"error": undefined,
|
||||
"name": "testDeprecations",
|
||||
"result": "success",
|
||||
"time": 0.9740000000000001,
|
||||
},
|
||||
],
|
||||
},
|
||||
],
|
||||
"name": "DeprecationTest",
|
||||
"totalTime": 0.9740000000000001,
|
||||
},
|
||||
TestSuiteResult {
|
||||
"groups": [
|
||||
TestGroupResult {
|
||||
"name": "",
|
||||
"tests": [
|
||||
TestCaseResult {
|
||||
"error": undefined,
|
||||
"name": "testGood",
|
||||
"result": "success",
|
||||
"time": 2.6470000000000002,
|
||||
},
|
||||
TestCaseResult {
|
||||
"error": undefined,
|
||||
"name": "testDoWhile",
|
||||
"result": "success",
|
||||
"time": 1.0219999999999998,
|
||||
},
|
||||
TestCaseResult {
|
||||
"error": undefined,
|
||||
"name": "testAnonymousFunction",
|
||||
"result": "success",
|
||||
"time": 0.8,
|
||||
},
|
||||
TestCaseResult {
|
||||
"error": undefined,
|
||||
"name": "testException",
|
||||
"result": "success",
|
||||
"time": 0.888,
|
||||
},
|
||||
],
|
||||
},
|
||||
],
|
||||
"name": "GoodTest",
|
||||
"totalTime": 5.357,
|
||||
},
|
||||
TestSuiteResult {
|
||||
"groups": [
|
||||
TestGroupResult {
|
||||
"name": "",
|
||||
"tests": [
|
||||
TestCaseResult {
|
||||
"error": undefined,
|
||||
"name": "testTabIndentation",
|
||||
"result": "success",
|
||||
"time": 0.857,
|
||||
},
|
||||
TestCaseResult {
|
||||
"error": undefined,
|
||||
"name": "testSpaceIndentation",
|
||||
"result": "success",
|
||||
"time": 0.929,
|
||||
},
|
||||
TestCaseResult {
|
||||
"error": undefined,
|
||||
"name": "testSpaceIndentationArray",
|
||||
"result": "success",
|
||||
"time": 0.975,
|
||||
},
|
||||
TestCaseResult {
|
||||
"error": undefined,
|
||||
"name": "testGoodSpaceIndentationArray",
|
||||
"result": "success",
|
||||
"time": 1.212,
|
||||
},
|
||||
TestCaseResult {
|
||||
"error": undefined,
|
||||
"name": "testGoodIndentationNewLine",
|
||||
"result": "success",
|
||||
"time": 0.859,
|
||||
},
|
||||
TestCaseResult {
|
||||
"error": undefined,
|
||||
"name": "testGoodIndentationSpaces",
|
||||
"result": "success",
|
||||
"time": 0.78,
|
||||
},
|
||||
TestCaseResult {
|
||||
"error": undefined,
|
||||
"name": "testBadSpaces",
|
||||
"result": "success",
|
||||
"time": 1.1199999999999999,
|
||||
},
|
||||
TestCaseResult {
|
||||
"error": undefined,
|
||||
"name": "testBadSpaceAfterControl",
|
||||
"result": "success",
|
||||
"time": 0.9219999999999999,
|
||||
},
|
||||
],
|
||||
},
|
||||
],
|
||||
"name": "IndentationTest",
|
||||
"totalTime": 7.654,
|
||||
},
|
||||
TestSuiteResult {
|
||||
"groups": [
|
||||
TestGroupResult {
|
||||
"name": "",
|
||||
"tests": [
|
||||
TestCaseResult {
|
||||
"error": undefined,
|
||||
"name": "testMetrics",
|
||||
"result": "success",
|
||||
"time": 4.146999999999999,
|
||||
},
|
||||
],
|
||||
},
|
||||
],
|
||||
"name": "MetricsTest",
|
||||
"totalTime": 4.146999999999999,
|
||||
},
|
||||
TestSuiteResult {
|
||||
"groups": [
|
||||
TestGroupResult {
|
||||
"name": "",
|
||||
"tests": [
|
||||
TestCaseResult {
|
||||
"error": undefined,
|
||||
"name": "testNaming",
|
||||
"result": "success",
|
||||
"time": 1.426,
|
||||
},
|
||||
TestCaseResult {
|
||||
"error": undefined,
|
||||
"name": "testFunctionNaming",
|
||||
"result": "success",
|
||||
"time": 1.271,
|
||||
},
|
||||
],
|
||||
},
|
||||
],
|
||||
"name": "NamingTest",
|
||||
"totalTime": 2.697,
|
||||
},
|
||||
TestSuiteResult {
|
||||
"groups": [
|
||||
TestGroupResult {
|
||||
"name": "",
|
||||
"tests": [
|
||||
TestCaseResult {
|
||||
"error": undefined,
|
||||
"name": "testTextAfterClosingTag",
|
||||
"result": "success",
|
||||
"time": 0.9940000000000001,
|
||||
},
|
||||
],
|
||||
},
|
||||
],
|
||||
"name": "OptimizationTest",
|
||||
"totalTime": 0.9940000000000001,
|
||||
},
|
||||
TestSuiteResult {
|
||||
"groups": [
|
||||
TestGroupResult {
|
||||
"name": "",
|
||||
"tests": [
|
||||
TestCaseResult {
|
||||
"error": {
|
||||
"details": "OtherTest::testOther
|
||||
We expect 20 warnings
|
||||
Failed asserting that 19 matches expected 20.
|
||||
|
||||
/workspace/phpcheckstyle/test/OtherTest.php:24",
|
||||
"line": 12,
|
||||
"message": "PHPUnit\\Framework\\ExpectationFailedException",
|
||||
"path": undefined,
|
||||
},
|
||||
"name": "testOther",
|
||||
"result": "failed",
|
||||
"time": 5.2509999999999994,
|
||||
},
|
||||
TestCaseResult {
|
||||
"error": {
|
||||
"details": "OtherTest::testException
|
||||
We expect 1 error
|
||||
Failed asserting that 0 matches expected 1.
|
||||
|
||||
/workspace/phpcheckstyle/test/OtherTest.php:40",
|
||||
"line": 31,
|
||||
"message": "PHPUnit\\Framework\\ExpectationFailedException",
|
||||
"path": undefined,
|
||||
},
|
||||
"name": "testException",
|
||||
"result": "failed",
|
||||
"time": 0.751,
|
||||
},
|
||||
TestCaseResult {
|
||||
"error": undefined,
|
||||
"name": "testEmpty",
|
||||
"result": "success",
|
||||
"time": 0.42700000000000005,
|
||||
},
|
||||
TestCaseResult {
|
||||
"error": undefined,
|
||||
"name": "testSwitchCaseNeedBreak",
|
||||
"result": "success",
|
||||
"time": 0.901,
|
||||
},
|
||||
],
|
||||
},
|
||||
],
|
||||
"name": "OtherTest",
|
||||
"totalTime": 7.329,
|
||||
},
|
||||
TestSuiteResult {
|
||||
"groups": [
|
||||
TestGroupResult {
|
||||
"name": "",
|
||||
"tests": [
|
||||
TestCaseResult {
|
||||
"error": undefined,
|
||||
"name": "testTextAfterClosingTag",
|
||||
"result": "success",
|
||||
"time": 0.641,
|
||||
},
|
||||
TestCaseResult {
|
||||
"error": undefined,
|
||||
"name": "testClosingTagNotNeeded",
|
||||
"result": "success",
|
||||
"time": 0.631,
|
||||
},
|
||||
],
|
||||
},
|
||||
],
|
||||
"name": "PHPTagsTest",
|
||||
"totalTime": 1.272,
|
||||
},
|
||||
TestSuiteResult {
|
||||
"groups": [
|
||||
TestGroupResult {
|
||||
"name": "",
|
||||
"tests": [
|
||||
TestCaseResult {
|
||||
"error": undefined,
|
||||
"name": "testProhibited",
|
||||
"result": "success",
|
||||
"time": 0.9380000000000001,
|
||||
},
|
||||
],
|
||||
},
|
||||
],
|
||||
"name": "ProhibitedTest",
|
||||
"totalTime": 0.9380000000000001,
|
||||
},
|
||||
TestSuiteResult {
|
||||
"groups": [
|
||||
TestGroupResult {
|
||||
"name": "",
|
||||
"tests": [
|
||||
TestCaseResult {
|
||||
"error": undefined,
|
||||
"name": "testStrictCompare",
|
||||
"result": "success",
|
||||
"time": 1.578,
|
||||
},
|
||||
],
|
||||
},
|
||||
],
|
||||
"name": "StrictCompareTest",
|
||||
"totalTime": 1.578,
|
||||
},
|
||||
TestSuiteResult {
|
||||
"groups": [
|
||||
TestGroupResult {
|
||||
"name": "",
|
||||
"tests": [
|
||||
TestCaseResult {
|
||||
"error": undefined,
|
||||
"name": "testGoodUnused",
|
||||
"result": "success",
|
||||
"time": 0.94,
|
||||
},
|
||||
TestCaseResult {
|
||||
"error": undefined,
|
||||
"name": "testBadUnused",
|
||||
"result": "success",
|
||||
"time": 0.895,
|
||||
},
|
||||
],
|
||||
},
|
||||
],
|
||||
"name": "UnusedTest",
|
||||
"totalTime": 1.835,
|
||||
},
|
||||
],
|
||||
"totalTime": undefined,
|
||||
}
|
||||
`;
|
||||
|
||||
exports[`phpunit-junit tests report from phpunit test results matches snapshot 1`] = `
|
||||
TestRunResult {
|
||||
"path": "fixtures/phpunit/phpunit.xml",
|
||||
"suites": [
|
||||
TestSuiteResult {
|
||||
"groups": [
|
||||
TestGroupResult {
|
||||
"name": "PHPUnit.Event.CollectingDispatcherTest",
|
||||
"tests": [
|
||||
TestCaseResult {
|
||||
"error": undefined,
|
||||
"name": "testHasNoCollectedEventsWhenFlushedImmediatelyAfterCreation",
|
||||
"result": "success",
|
||||
"time": 1.441,
|
||||
},
|
||||
TestCaseResult {
|
||||
"error": undefined,
|
||||
"name": "testCollectsDispatchedEventsUntilFlushed",
|
||||
"result": "success",
|
||||
"time": 2.815,
|
||||
},
|
||||
],
|
||||
},
|
||||
],
|
||||
"name": "PHPUnit\\Event\\CollectingDispatcherTest",
|
||||
"totalTime": 4.256,
|
||||
},
|
||||
TestSuiteResult {
|
||||
"groups": [
|
||||
TestGroupResult {
|
||||
"name": "PHPUnit.Event.DeferringDispatcherTest",
|
||||
"tests": [
|
||||
TestCaseResult {
|
||||
"error": undefined,
|
||||
"name": "testCollectsEventsUntilFlush",
|
||||
"result": "success",
|
||||
"time": 1.6720000000000002,
|
||||
},
|
||||
TestCaseResult {
|
||||
"error": undefined,
|
||||
"name": "testFlushesCollectedEvents",
|
||||
"result": "success",
|
||||
"time": 0.661,
|
||||
},
|
||||
TestCaseResult {
|
||||
"error": undefined,
|
||||
"name": "testSubscriberCanBeRegistered",
|
||||
"result": "success",
|
||||
"time": 0.33399999999999996,
|
||||
},
|
||||
TestCaseResult {
|
||||
"error": undefined,
|
||||
"name": "testTracerCanBeRegistered",
|
||||
"result": "success",
|
||||
"time": 0.262,
|
||||
},
|
||||
],
|
||||
},
|
||||
],
|
||||
"name": "PHPUnit\\Event\\DeferringDispatcherTest",
|
||||
"totalTime": 2.928,
|
||||
},
|
||||
TestSuiteResult {
|
||||
"groups": [
|
||||
TestGroupResult {
|
||||
"name": "PHPUnit.Event.DirectDispatcherTest",
|
||||
"tests": [
|
||||
TestCaseResult {
|
||||
"error": undefined,
|
||||
"name": "testDispatchesEventToKnownSubscribers",
|
||||
"result": "success",
|
||||
"time": 0.17,
|
||||
},
|
||||
TestCaseResult {
|
||||
"error": undefined,
|
||||
"name": "testDispatchesEventToTracers",
|
||||
"result": "success",
|
||||
"time": 0.248,
|
||||
},
|
||||
TestCaseResult {
|
||||
"error": undefined,
|
||||
"name": "testRegisterRejectsUnknownSubscriber",
|
||||
"result": "success",
|
||||
"time": 0.257,
|
||||
},
|
||||
TestCaseResult {
|
||||
"error": undefined,
|
||||
"name": "testDispatchRejectsUnknownEventType",
|
||||
"result": "success",
|
||||
"time": 0.11900000000000001,
|
||||
},
|
||||
],
|
||||
},
|
||||
],
|
||||
"name": "PHPUnit\\Event\\DirectDispatcherTest",
|
||||
"totalTime": 0.794,
|
||||
},
|
||||
TestSuiteResult {
|
||||
"groups": [
|
||||
TestGroupResult {
|
||||
"name": "",
|
||||
"tests": [
|
||||
TestCaseResult {
|
||||
"error": {
|
||||
"details": "targeting-traits-with-coversclass-attribute-is-deprecated.phptFailed asserting that string matches format description.
|
||||
--- Expected
|
||||
+++ Actual
|
||||
@@ @@
|
||||
PHPUnit Started (PHPUnit 11.2-g0c2333363 using PHP 8.2.17 (cli) on Linux)
|
||||
Test Runner Configured
|
||||
Test Suite Loaded (1 test)
|
||||
+Test Runner Triggered Warning (No code coverage driver available)
|
||||
Event Facade Sealed
|
||||
Test Runner Started
|
||||
Test Suite Sorted
|
||||
@@ @@
|
||||
Test Preparation Started (PHPUnit\\DeprecatedAnnotationsTestFixture\\TraitTargetedWithCoversClassTest::testSomething)
|
||||
Test Prepared (PHPUnit\\DeprecatedAnnotationsTestFixture\\TraitTargetedWithCoversClassTest::testSomething)
|
||||
Test Passed (PHPUnit\\DeprecatedAnnotationsTestFixture\\TraitTargetedWithCoversClassTest::testSomething)
|
||||
-Test Runner Triggered Deprecation (Targeting a trait such as PHPUnit\\TestFixture\\CoveredTrait with #[CoversClass] is deprecated, please refactor your test to use #[CoversTrait] instead.)
|
||||
Test Finished (PHPUnit\\DeprecatedAnnotationsTestFixture\\TraitTargetedWithCoversClassTest::testSomething)
|
||||
Test Suite Finished (PHPUnit\\DeprecatedAnnotationsTestFixture\\TraitTargetedWithCoversClassTest, 1 test)
|
||||
Test Runner Execution Finished
|
||||
Test Runner Finished
|
||||
-PHPUnit Finished (Shell Exit Code: 0)
|
||||
+PHPUnit Finished (Shell Exit Code: 1)
|
||||
|
||||
/home/matteo/OSS/phpunit/tests/end-to-end/metadata/targeting-traits-with-coversclass-attribute-is-deprecated.phpt:28
|
||||
/home/matteo/OSS/phpunit/src/Framework/TestSuite.php:369
|
||||
/home/matteo/OSS/phpunit/src/TextUI/TestRunner.php:62
|
||||
/home/matteo/OSS/phpunit/src/TextUI/Application.php:200",
|
||||
"line": undefined,
|
||||
"message": "PHPUnit\\Framework\\PhptAssertionFailedError",
|
||||
"path": undefined,
|
||||
},
|
||||
"name": "targeting-traits-with-coversclass-attribute-is-deprecated.phpt",
|
||||
"result": "failed",
|
||||
"time": 68.151,
|
||||
},
|
||||
TestCaseResult {
|
||||
"error": {
|
||||
"details": "targeting-traits-with-usesclass-attribute-is-deprecated.phptFailed asserting that string matches format description.
|
||||
--- Expected
|
||||
+++ Actual
|
||||
@@ @@
|
||||
PHPUnit Started (PHPUnit 11.2-g0c2333363 using PHP 8.2.17 (cli) on Linux)
|
||||
Test Runner Configured
|
||||
Test Suite Loaded (1 test)
|
||||
+Test Runner Triggered Warning (No code coverage driver available)
|
||||
Event Facade Sealed
|
||||
Test Runner Started
|
||||
Test Suite Sorted
|
||||
@@ @@
|
||||
Test Preparation Started (PHPUnit\\DeprecatedAnnotationsTestFixture\\TraitTargetedWithUsesClassTest::testSomething)
|
||||
Test Prepared (PHPUnit\\DeprecatedAnnotationsTestFixture\\TraitTargetedWithUsesClassTest::testSomething)
|
||||
Test Passed (PHPUnit\\DeprecatedAnnotationsTestFixture\\TraitTargetedWithUsesClassTest::testSomething)
|
||||
-Test Runner Triggered Deprecation (Targeting a trait such as PHPUnit\\TestFixture\\CoveredTrait with #[UsesClass] is deprecated, please refactor your test to use #[UsesTrait] instead.)
|
||||
Test Finished (PHPUnit\\DeprecatedAnnotationsTestFixture\\TraitTargetedWithUsesClassTest::testSomething)
|
||||
Test Suite Finished (PHPUnit\\DeprecatedAnnotationsTestFixture\\TraitTargetedWithUsesClassTest, 1 test)
|
||||
Test Runner Execution Finished
|
||||
Test Runner Finished
|
||||
-PHPUnit Finished (Shell Exit Code: 0)
|
||||
+PHPUnit Finished (Shell Exit Code: 1)
|
||||
|
||||
/home/matteo/OSS/phpunit/tests/end-to-end/metadata/targeting-traits-with-usesclass-attribute-is-deprecated.phpt:28
|
||||
/home/matteo/OSS/phpunit/src/Framework/TestSuite.php:369
|
||||
/home/matteo/OSS/phpunit/src/TextUI/TestRunner.php:62
|
||||
/home/matteo/OSS/phpunit/src/TextUI/Application.php:200",
|
||||
"line": undefined,
|
||||
"message": "PHPUnit\\Framework\\PhptAssertionFailedError",
|
||||
"path": undefined,
|
||||
},
|
||||
"name": "targeting-traits-with-usesclass-attribute-is-deprecated.phpt",
|
||||
"result": "failed",
|
||||
"time": 64.268,
|
||||
},
|
||||
],
|
||||
},
|
||||
],
|
||||
"name": "CLI Arguments",
|
||||
"totalTime": 140.397,
|
||||
},
|
||||
],
|
||||
"totalTime": undefined,
|
||||
}
|
||||
`;
|
||||
192
__tests__/__snapshots__/python-xunit.test.ts.snap
Normal file
192
__tests__/__snapshots__/python-xunit.test.ts.snap
Normal file
@@ -0,0 +1,192 @@
|
||||
// Jest Snapshot v1, https://jestjs.io/docs/snapshot-testing
|
||||
|
||||
exports[`python-xunit pytest report report from python test results matches snapshot 1`] = `
|
||||
TestRunResult {
|
||||
"path": "fixtures/python-xunit-pytest.xml",
|
||||
"suites": [
|
||||
TestSuiteResult {
|
||||
"groups": [
|
||||
TestGroupResult {
|
||||
"name": "tests.test_lib",
|
||||
"tests": [
|
||||
TestCaseResult {
|
||||
"error": undefined,
|
||||
"name": "test_always_pass",
|
||||
"result": "success",
|
||||
"time": 2,
|
||||
},
|
||||
TestCaseResult {
|
||||
"error": undefined,
|
||||
"name": "test_with_subtests",
|
||||
"result": "success",
|
||||
"time": 5,
|
||||
},
|
||||
TestCaseResult {
|
||||
"error": undefined,
|
||||
"name": "test_parameterized[param1]",
|
||||
"result": "success",
|
||||
"time": 0,
|
||||
},
|
||||
TestCaseResult {
|
||||
"error": undefined,
|
||||
"name": "test_parameterized[param2]",
|
||||
"result": "success",
|
||||
"time": 0,
|
||||
},
|
||||
TestCaseResult {
|
||||
"error": undefined,
|
||||
"name": "test_always_skip",
|
||||
"result": "skipped",
|
||||
"time": 0,
|
||||
},
|
||||
TestCaseResult {
|
||||
"error": {
|
||||
"details": "def test_always_fail():
|
||||
> assert False
|
||||
E assert False
|
||||
|
||||
tests/test_lib.py:25: AssertionError
|
||||
",
|
||||
"line": undefined,
|
||||
"message": "assert False",
|
||||
"path": undefined,
|
||||
},
|
||||
"name": "test_always_fail",
|
||||
"result": "failed",
|
||||
"time": 0,
|
||||
},
|
||||
TestCaseResult {
|
||||
"error": undefined,
|
||||
"name": "test_expected_failure",
|
||||
"result": "skipped",
|
||||
"time": 0,
|
||||
},
|
||||
TestCaseResult {
|
||||
"error": {
|
||||
"details": "def test_error():
|
||||
> raise Exception("error")
|
||||
E Exception: error
|
||||
|
||||
tests/test_lib.py:32: Exception
|
||||
",
|
||||
"line": undefined,
|
||||
"message": "Exception: error",
|
||||
"path": undefined,
|
||||
},
|
||||
"name": "test_error",
|
||||
"result": "failed",
|
||||
"time": 0,
|
||||
},
|
||||
TestCaseResult {
|
||||
"error": undefined,
|
||||
"name": "test_with_record_property",
|
||||
"result": "success",
|
||||
"time": 0,
|
||||
},
|
||||
],
|
||||
},
|
||||
TestGroupResult {
|
||||
"name": "custom_classname",
|
||||
"tests": [
|
||||
TestCaseResult {
|
||||
"error": undefined,
|
||||
"name": "test_with_record_xml_attribute",
|
||||
"result": "success",
|
||||
"time": 0,
|
||||
},
|
||||
],
|
||||
},
|
||||
],
|
||||
"name": "pytest",
|
||||
"totalTime": 19,
|
||||
},
|
||||
],
|
||||
"totalTime": undefined,
|
||||
}
|
||||
`;
|
||||
|
||||
exports[`python-xunit unittest report report from python test results matches snapshot 1`] = `
|
||||
TestRunResult {
|
||||
"path": "fixtures/python-xunit-unittest.xml",
|
||||
"suites": [
|
||||
TestSuiteResult {
|
||||
"groups": [
|
||||
TestGroupResult {
|
||||
"name": "TestAcme",
|
||||
"tests": [
|
||||
TestCaseResult {
|
||||
"error": undefined,
|
||||
"name": "test_always_pass",
|
||||
"result": "success",
|
||||
"time": 0,
|
||||
},
|
||||
TestCaseResult {
|
||||
"error": undefined,
|
||||
"name": "test_parameterized_0_param1",
|
||||
"result": "success",
|
||||
"time": 1,
|
||||
},
|
||||
TestCaseResult {
|
||||
"error": undefined,
|
||||
"name": "test_parameterized_1_param2",
|
||||
"result": "success",
|
||||
"time": 0,
|
||||
},
|
||||
TestCaseResult {
|
||||
"error": undefined,
|
||||
"name": "test_with_subtests",
|
||||
"result": "success",
|
||||
"time": 0,
|
||||
},
|
||||
TestCaseResult {
|
||||
"error": {
|
||||
"details": "Traceback (most recent call last):
|
||||
File "/Users/foo/Projects/python-test/tests/test_lib.py", line 24, in test_always_fail
|
||||
self.fail("failed")
|
||||
AssertionError: failed
|
||||
",
|
||||
"line": undefined,
|
||||
"message": "AssertionError: failed",
|
||||
"path": undefined,
|
||||
},
|
||||
"name": "test_always_fail",
|
||||
"result": "failed",
|
||||
"time": 0,
|
||||
},
|
||||
TestCaseResult {
|
||||
"error": {
|
||||
"details": "Traceback (most recent call last):
|
||||
File "/Users/foo/Projects/python-test/tests/test_lib.py", line 31, in test_error
|
||||
raise Exception("error")
|
||||
Exception: error
|
||||
",
|
||||
"line": undefined,
|
||||
"message": "Exception: error",
|
||||
"path": undefined,
|
||||
},
|
||||
"name": "test_error",
|
||||
"result": "failed",
|
||||
"time": 0,
|
||||
},
|
||||
TestCaseResult {
|
||||
"error": undefined,
|
||||
"name": "test_always_skip",
|
||||
"result": "skipped",
|
||||
"time": 0,
|
||||
},
|
||||
TestCaseResult {
|
||||
"error": undefined,
|
||||
"name": "test_expected_failure",
|
||||
"result": "skipped",
|
||||
"time": 0,
|
||||
},
|
||||
],
|
||||
},
|
||||
],
|
||||
"name": "TestAcme-20251114214921",
|
||||
"totalTime": 1,
|
||||
},
|
||||
],
|
||||
"totalTime": 1,
|
||||
}
|
||||
`;
|
||||
49
__tests__/__snapshots__/rspec-json.test.ts.snap
Normal file
49
__tests__/__snapshots__/rspec-json.test.ts.snap
Normal file
@@ -0,0 +1,49 @@
|
||||
// Jest Snapshot v1, https://jestjs.io/docs/snapshot-testing
|
||||
|
||||
exports[`rspec-json tests report from ./reports/rspec-json test results matches snapshot 1`] = `
|
||||
TestRunResult {
|
||||
"path": "fixtures/rspec-json.json",
|
||||
"suites": [
|
||||
TestSuiteResult {
|
||||
"groups": [
|
||||
TestGroupResult {
|
||||
"name": "CheckEnvVars#call when all env vars are defined behaves like success load",
|
||||
"tests": [
|
||||
TestCaseResult {
|
||||
"error": {
|
||||
"details": "/usr/local/bundle/ruby/3.3.0/gems/net-http-0.4.1/lib/net/http.rb:1603:in \`initialize'
|
||||
./config/check_env_vars.rb:11:in \`call'
|
||||
./spec/config/check_env_vars_spec.rb:7:in \`block (3 levels) in <top (required)>'
|
||||
./spec/config/check_env_vars_spec.rb:19:in \`block (4 levels) in <top (required)>'",
|
||||
"line": 11,
|
||||
"message": "(#ActiveSupport::BroadcastLogger:0x00007f1007fedf58).debug("All config env vars exist")
|
||||
expected: 0 times with arguments: ("All config env vars exist")
|
||||
received: 1 time with arguments: ("All config env vars exist")",
|
||||
"path": "./config/check_env_vars.rb",
|
||||
},
|
||||
"name": "CheckEnvVars#call when all env vars are defined behaves like success load fails in assertion",
|
||||
"result": "failed",
|
||||
"time": 0.004411051,
|
||||
},
|
||||
TestCaseResult {
|
||||
"error": undefined,
|
||||
"name": "CheckEnvVars#call when all env vars are defined behaves like success load logs success message",
|
||||
"result": "success",
|
||||
"time": 0.079159625,
|
||||
},
|
||||
TestCaseResult {
|
||||
"error": undefined,
|
||||
"name": "CheckEnvVars#call when all env vars are defined behaves like success load skips the test",
|
||||
"result": "skipped",
|
||||
"time": 0.000023007,
|
||||
},
|
||||
],
|
||||
},
|
||||
],
|
||||
"name": "./spec/config/check_env_vars_spec.rb",
|
||||
"totalTime": undefined,
|
||||
},
|
||||
],
|
||||
"totalTime": 0.19118387,
|
||||
}
|
||||
`;
|
||||
44
__tests__/__snapshots__/swift-xunit.test.ts.snap
Normal file
44
__tests__/__snapshots__/swift-xunit.test.ts.snap
Normal file
@@ -0,0 +1,44 @@
|
||||
// Jest Snapshot v1, https://jestjs.io/docs/snapshot-testing
|
||||
|
||||
exports[`swift-xunit tests report from swift test results matches snapshot 1`] = `
|
||||
TestRunResult {
|
||||
"path": "fixtures/swift-xunit.xml",
|
||||
"suites": [
|
||||
TestSuiteResult {
|
||||
"groups": [
|
||||
TestGroupResult {
|
||||
"name": "AcmeLibTests.AcmeLibTests",
|
||||
"tests": [
|
||||
TestCaseResult {
|
||||
"error": undefined,
|
||||
"name": "test_always_pass",
|
||||
"result": "success",
|
||||
"time": 36.386333,
|
||||
},
|
||||
TestCaseResult {
|
||||
"error": undefined,
|
||||
"name": "test_always_skip",
|
||||
"result": "success",
|
||||
"time": 92.039167,
|
||||
},
|
||||
TestCaseResult {
|
||||
"error": {
|
||||
"details": undefined,
|
||||
"line": undefined,
|
||||
"message": "failed",
|
||||
"path": undefined,
|
||||
},
|
||||
"name": "test_always_fail",
|
||||
"result": "failed",
|
||||
"time": 92.05175,
|
||||
},
|
||||
],
|
||||
},
|
||||
],
|
||||
"name": "TestResults",
|
||||
"totalTime": 220.47725000000003,
|
||||
},
|
||||
],
|
||||
"totalTime": undefined,
|
||||
}
|
||||
`;
|
||||
485
__tests__/__snapshots__/tester-junit.test.ts.snap
Normal file
485
__tests__/__snapshots__/tester-junit.test.ts.snap
Normal file
@@ -0,0 +1,485 @@
|
||||
// Jest Snapshot v1, https://jestjs.io/docs/snapshot-testing
|
||||
|
||||
exports[`tester-junit tests parses complex test names from BootstrapFormRenderer-report.xml 1`] = `
|
||||
TestRunResult {
|
||||
"path": "fixtures/nette-tester/BootstrapFormRenderer-report.xml",
|
||||
"suites": [
|
||||
TestSuiteResult {
|
||||
"groups": [
|
||||
TestGroupResult {
|
||||
"name": "KdybyTests/BootstrapFormRenderer",
|
||||
"tests": [
|
||||
TestCaseResult {
|
||||
"error": undefined,
|
||||
"name": "BootstrapRendererTest.phpt::testRenderingBasics",
|
||||
"result": "success",
|
||||
"time": 0,
|
||||
},
|
||||
TestCaseResult {
|
||||
"error": undefined,
|
||||
"name": "BootstrapRendererTest.phpt::testRenderingIndividual",
|
||||
"result": "success",
|
||||
"time": 0,
|
||||
},
|
||||
TestCaseResult {
|
||||
"error": undefined,
|
||||
"name": "BootstrapRendererTest.phpt::testRenderingComponents",
|
||||
"result": "success",
|
||||
"time": 0,
|
||||
},
|
||||
TestCaseResult {
|
||||
"error": undefined,
|
||||
"name": "BootstrapRendererTest.phpt::testMultipleFormsInTemplate",
|
||||
"result": "success",
|
||||
"time": 0,
|
||||
},
|
||||
],
|
||||
},
|
||||
],
|
||||
"name": "BootstrapFormRenderer-report.xml",
|
||||
"totalTime": 300,
|
||||
},
|
||||
],
|
||||
"totalTime": undefined,
|
||||
}
|
||||
`;
|
||||
|
||||
exports[`tester-junit tests report from tester-v1.7-report.xml matches snapshot 1`] = `
|
||||
TestRunResult {
|
||||
"path": "fixtures/nette-tester/tester-v1.7-report.xml",
|
||||
"suites": [
|
||||
TestSuiteResult {
|
||||
"groups": [
|
||||
TestGroupResult {
|
||||
"name": "tests/Framework",
|
||||
"tests": [
|
||||
TestCaseResult {
|
||||
"error": undefined,
|
||||
"name": "Dumper.toPhp.php7.phpt",
|
||||
"result": "skipped",
|
||||
"time": 0,
|
||||
},
|
||||
TestCaseResult {
|
||||
"error": undefined,
|
||||
"name": "Assert.contains.phpt",
|
||||
"result": "success",
|
||||
"time": 0,
|
||||
},
|
||||
TestCaseResult {
|
||||
"error": undefined,
|
||||
"name": "Assert.count.phpt",
|
||||
"result": "success",
|
||||
"time": 0,
|
||||
},
|
||||
TestCaseResult {
|
||||
"error": undefined,
|
||||
"name": "Assert.equal.phpt",
|
||||
"result": "success",
|
||||
"time": 0,
|
||||
},
|
||||
TestCaseResult {
|
||||
"error": undefined,
|
||||
"name": "Assert.equal.recursive.phpt::testSimple",
|
||||
"result": "success",
|
||||
"time": 0,
|
||||
},
|
||||
TestCaseResult {
|
||||
"error": undefined,
|
||||
"name": "Assert.equal.recursive.phpt::testMultiple",
|
||||
"result": "success",
|
||||
"time": 0,
|
||||
},
|
||||
TestCaseResult {
|
||||
"error": undefined,
|
||||
"name": "Assert.equal.recursive.phpt::testDeep",
|
||||
"result": "success",
|
||||
"time": 0,
|
||||
},
|
||||
TestCaseResult {
|
||||
"error": undefined,
|
||||
"name": "Assert.equal.recursive.phpt::testCross",
|
||||
"result": "success",
|
||||
"time": 0,
|
||||
},
|
||||
TestCaseResult {
|
||||
"error": undefined,
|
||||
"name": "Assert.equal.recursive.phpt::testThirdParty",
|
||||
"result": "success",
|
||||
"time": 0,
|
||||
},
|
||||
TestCaseResult {
|
||||
"error": undefined,
|
||||
"name": "Assert.error.phpt",
|
||||
"result": "success",
|
||||
"time": 0,
|
||||
},
|
||||
TestCaseResult {
|
||||
"error": undefined,
|
||||
"name": "Assert.exception.phpt",
|
||||
"result": "success",
|
||||
"time": 0,
|
||||
},
|
||||
TestCaseResult {
|
||||
"error": undefined,
|
||||
"name": "Assert.false.phpt",
|
||||
"result": "success",
|
||||
"time": 0,
|
||||
},
|
||||
TestCaseResult {
|
||||
"error": undefined,
|
||||
"name": "Assert.match.phpt",
|
||||
"result": "success",
|
||||
"time": 0,
|
||||
},
|
||||
TestCaseResult {
|
||||
"error": undefined,
|
||||
"name": "Assert.match.regexp.phpt",
|
||||
"result": "success",
|
||||
"time": 0,
|
||||
},
|
||||
TestCaseResult {
|
||||
"error": undefined,
|
||||
"name": "Assert.nan.phpt",
|
||||
"result": "success",
|
||||
"time": 0,
|
||||
},
|
||||
TestCaseResult {
|
||||
"error": undefined,
|
||||
"name": "Assert.noError.phpt",
|
||||
"result": "success",
|
||||
"time": 0,
|
||||
},
|
||||
TestCaseResult {
|
||||
"error": undefined,
|
||||
"name": "Assert.same.phpt",
|
||||
"result": "success",
|
||||
"time": 0,
|
||||
},
|
||||
TestCaseResult {
|
||||
"error": undefined,
|
||||
"name": "Assert.null.phpt",
|
||||
"result": "success",
|
||||
"time": 0,
|
||||
},
|
||||
TestCaseResult {
|
||||
"error": undefined,
|
||||
"name": "Assert.true.phpt",
|
||||
"result": "success",
|
||||
"time": 0,
|
||||
},
|
||||
TestCaseResult {
|
||||
"error": undefined,
|
||||
"name": "Assert.truthy.phpt",
|
||||
"result": "success",
|
||||
"time": 0,
|
||||
},
|
||||
TestCaseResult {
|
||||
"error": undefined,
|
||||
"name": "DataProvider.load.phpt",
|
||||
"result": "success",
|
||||
"time": 0,
|
||||
},
|
||||
TestCaseResult {
|
||||
"error": undefined,
|
||||
"name": "Assert.type.phpt",
|
||||
"result": "success",
|
||||
"time": 0,
|
||||
},
|
||||
TestCaseResult {
|
||||
"error": undefined,
|
||||
"name": "DataProvider.parseAnnotation.phpt",
|
||||
"result": "success",
|
||||
"time": 0,
|
||||
},
|
||||
TestCaseResult {
|
||||
"error": undefined,
|
||||
"name": "DataProvider.testQuery.phpt",
|
||||
"result": "success",
|
||||
"time": 0,
|
||||
},
|
||||
TestCaseResult {
|
||||
"error": undefined,
|
||||
"name": "DomQuery.css2Xpath.phpt",
|
||||
"result": "success",
|
||||
"time": 0,
|
||||
},
|
||||
TestCaseResult {
|
||||
"error": undefined,
|
||||
"name": "DomQuery.fromHtml.phpt",
|
||||
"result": "success",
|
||||
"time": 0,
|
||||
},
|
||||
TestCaseResult {
|
||||
"error": undefined,
|
||||
"name": "DomQuery.fromXml.phpt",
|
||||
"result": "success",
|
||||
"time": 0,
|
||||
},
|
||||
TestCaseResult {
|
||||
"error": undefined,
|
||||
"name": "Dumper.dumpException.phpt",
|
||||
"result": "success",
|
||||
"time": 0,
|
||||
},
|
||||
TestCaseResult {
|
||||
"error": undefined,
|
||||
"name": "Dumper.color.phpt",
|
||||
"result": "success",
|
||||
"time": 0,
|
||||
},
|
||||
TestCaseResult {
|
||||
"error": undefined,
|
||||
"name": "Dumper.toLine.phpt",
|
||||
"result": "success",
|
||||
"time": 0,
|
||||
},
|
||||
TestCaseResult {
|
||||
"error": undefined,
|
||||
"name": "Dumper.toPhp.recursion.phpt",
|
||||
"result": "success",
|
||||
"time": 0,
|
||||
},
|
||||
TestCaseResult {
|
||||
"error": undefined,
|
||||
"name": "Dumper.toPhp.phpt",
|
||||
"result": "success",
|
||||
"time": 0,
|
||||
},
|
||||
TestCaseResult {
|
||||
"error": undefined,
|
||||
"name": "FileMock.phpt",
|
||||
"result": "success",
|
||||
"time": 0,
|
||||
},
|
||||
TestCaseResult {
|
||||
"error": undefined,
|
||||
"name": "Helpers.escapeArg.phpt",
|
||||
"result": "success",
|
||||
"time": 0,
|
||||
},
|
||||
TestCaseResult {
|
||||
"error": undefined,
|
||||
"name": "Helpers.parseDocComment.phpt",
|
||||
"result": "success",
|
||||
"time": 0,
|
||||
},
|
||||
TestCaseResult {
|
||||
"error": undefined,
|
||||
"name": "TestCase.annotationThrows.phpt",
|
||||
"result": "success",
|
||||
"time": 0,
|
||||
},
|
||||
TestCaseResult {
|
||||
"error": undefined,
|
||||
"name": "TestCase.annotationThrows.setUp.tearDown.phpt",
|
||||
"result": "success",
|
||||
"time": 0,
|
||||
},
|
||||
TestCaseResult {
|
||||
"error": undefined,
|
||||
"name": "TestCase.annotationThrows.syntax.phpt",
|
||||
"result": "success",
|
||||
"time": 0,
|
||||
},
|
||||
TestCaseResult {
|
||||
"error": undefined,
|
||||
"name": "TestCase.basic.phpt",
|
||||
"result": "success",
|
||||
"time": 0,
|
||||
},
|
||||
TestCaseResult {
|
||||
"error": undefined,
|
||||
"name": "TestCase.dataProvider.generator.phpt",
|
||||
"result": "success",
|
||||
"time": 0,
|
||||
},
|
||||
TestCaseResult {
|
||||
"error": undefined,
|
||||
"name": "TestCase.dataProvider.phpt",
|
||||
"result": "success",
|
||||
"time": 0,
|
||||
},
|
||||
TestCaseResult {
|
||||
"error": undefined,
|
||||
"name": "TestCase.invalidMethods.phpt",
|
||||
"result": "success",
|
||||
"time": 0,
|
||||
},
|
||||
TestCaseResult {
|
||||
"error": undefined,
|
||||
"name": "TestCase.invalidProvider.phpt",
|
||||
"result": "success",
|
||||
"time": 0,
|
||||
},
|
||||
TestCaseResult {
|
||||
"error": undefined,
|
||||
"name": "TestCase.order.error.phpt",
|
||||
"result": "success",
|
||||
"time": 0,
|
||||
},
|
||||
TestCaseResult {
|
||||
"error": undefined,
|
||||
"name": "TestCase.order.errorMuted.phpt",
|
||||
"result": "success",
|
||||
"time": 0,
|
||||
},
|
||||
TestCaseResult {
|
||||
"error": undefined,
|
||||
"name": "TestCase.order.phpt",
|
||||
"result": "success",
|
||||
"time": 0,
|
||||
},
|
||||
TestCaseResult {
|
||||
"error": undefined,
|
||||
"name": "Prevent loop in error handling. The #268 regression. (TestCase.ownErrorHandler.phpt)",
|
||||
"result": "success",
|
||||
"time": 0,
|
||||
},
|
||||
],
|
||||
},
|
||||
TestGroupResult {
|
||||
"name": "tests/CodeCoverage",
|
||||
"tests": [
|
||||
TestCaseResult {
|
||||
"error": undefined,
|
||||
"name": "Collector.start.phpt",
|
||||
"result": "skipped",
|
||||
"time": 0,
|
||||
},
|
||||
TestCaseResult {
|
||||
"error": undefined,
|
||||
"name": "PhpParser.parse.lines.phpt",
|
||||
"result": "success",
|
||||
"time": 0,
|
||||
},
|
||||
TestCaseResult {
|
||||
"error": undefined,
|
||||
"name": "PhpParser.parse.methods.phpt",
|
||||
"result": "success",
|
||||
"time": 0,
|
||||
},
|
||||
TestCaseResult {
|
||||
"error": undefined,
|
||||
"name": "CloverXMLGenerator.phpt",
|
||||
"result": "success",
|
||||
"time": 0,
|
||||
},
|
||||
TestCaseResult {
|
||||
"error": undefined,
|
||||
"name": "PhpParser.parse.edge.phpt",
|
||||
"result": "success",
|
||||
"time": 0,
|
||||
},
|
||||
TestCaseResult {
|
||||
"error": undefined,
|
||||
"name": "PhpParser.parse.lines-of-code.phpt",
|
||||
"result": "success",
|
||||
"time": 0,
|
||||
},
|
||||
TestCaseResult {
|
||||
"error": undefined,
|
||||
"name": "PhpParser.parse.namespaces.phpt",
|
||||
"result": "success",
|
||||
"time": 0,
|
||||
},
|
||||
],
|
||||
},
|
||||
TestGroupResult {
|
||||
"name": "tests/Runner",
|
||||
"tests": [
|
||||
TestCaseResult {
|
||||
"error": undefined,
|
||||
"name": "CommandLine.phpt",
|
||||
"result": "success",
|
||||
"time": 0,
|
||||
},
|
||||
TestCaseResult {
|
||||
"error": undefined,
|
||||
"name": "HhvmPhpInterpreter.phpt",
|
||||
"result": "skipped",
|
||||
"time": 0,
|
||||
},
|
||||
TestCaseResult {
|
||||
"error": undefined,
|
||||
"name": "Runner.find-tests.phpt",
|
||||
"result": "success",
|
||||
"time": 0,
|
||||
},
|
||||
TestCaseResult {
|
||||
"error": undefined,
|
||||
"name": "Job.phpt",
|
||||
"result": "success",
|
||||
"time": 0,
|
||||
},
|
||||
TestCaseResult {
|
||||
"error": undefined,
|
||||
"name": "ZendPhpExecutable.phpt",
|
||||
"result": "success",
|
||||
"time": 0,
|
||||
},
|
||||
TestCaseResult {
|
||||
"error": undefined,
|
||||
"name": "Runner.multiple.phpt",
|
||||
"result": "success",
|
||||
"time": 0,
|
||||
},
|
||||
TestCaseResult {
|
||||
"error": undefined,
|
||||
"name": "Runner.edge.phpt",
|
||||
"result": "success",
|
||||
"time": 0,
|
||||
},
|
||||
TestCaseResult {
|
||||
"error": undefined,
|
||||
"name": "Runner.stop-on-fail.phpt",
|
||||
"result": "success",
|
||||
"time": 0,
|
||||
},
|
||||
TestCaseResult {
|
||||
"error": {
|
||||
"details": "Failed: '... in /Users/izso/Developer/nette/tester/tests/Runner/multiple-fails/...' should match
|
||||
... '..., unexpected end of file in %a%testcase-syntax-error.phptx on line ...'
|
||||
|
||||
diff '/Users/izso/Developer/nette/tester/tests/Runner/output/Runner.multiple-fails.expected' '/Users/izso/Developer/nette/tester/tests/Runner/output/Runner.multiple-fails.actual'
|
||||
|
||||
in tests/Runner/Runner.multiple-fails.phpt(78) Tester\\Assert::match()",
|
||||
"line": undefined,
|
||||
"message": "Failed: '... in /Users/izso/Developer/nette/tester/tests/Runner/multiple-fails/...' should match
|
||||
... '..., unexpected end of file in %a%testcase-syntax-error.phptx on line ...'
|
||||
|
||||
diff '/Users/izso/Developer/nette/tester/tests/Runner/output/Runner.multiple-fails.expected' '/Users/izso/Developer/nette/tester/tests/Runner/output/Runner.multiple-fails.actual'
|
||||
|
||||
in tests/Runner/Runner.multiple-fails.phpt(78) Tester\\Assert::match()",
|
||||
"path": undefined,
|
||||
},
|
||||
"name": "Runner.multiple-fails.phpt",
|
||||
"result": "failed",
|
||||
"time": 0,
|
||||
},
|
||||
TestCaseResult {
|
||||
"error": undefined,
|
||||
"name": "Runner.annotations.phpt",
|
||||
"result": "success",
|
||||
"time": 0,
|
||||
},
|
||||
],
|
||||
},
|
||||
TestGroupResult {
|
||||
"name": "tests/RunnerOutput",
|
||||
"tests": [
|
||||
TestCaseResult {
|
||||
"error": undefined,
|
||||
"name": "JUnitPrinter.phpt",
|
||||
"result": "success",
|
||||
"time": 0,
|
||||
},
|
||||
],
|
||||
},
|
||||
],
|
||||
"name": "tester-v1.7-report.xml",
|
||||
"totalTime": 2100,
|
||||
},
|
||||
],
|
||||
"totalTime": undefined,
|
||||
}
|
||||
`;
|
||||
@@ -3,7 +3,7 @@ import * as path from 'path'
|
||||
|
||||
import {DartJsonParser} from '../src/parsers/dart-json/dart-json-parser'
|
||||
import {ParseOptions} from '../src/test-parser'
|
||||
import {getReport} from '../src/report/get-report'
|
||||
import {DEFAULT_OPTIONS, getReport} from '../src/report/get-report'
|
||||
import {normalizeFilePath} from '../src/utils/path-utils'
|
||||
|
||||
describe('dart-json tests', () => {
|
||||
@@ -66,4 +66,66 @@ describe('dart-json tests', () => {
|
||||
fs.mkdirSync(path.dirname(outputPath), {recursive: true})
|
||||
fs.writeFileSync(outputPath, report)
|
||||
})
|
||||
|
||||
it('report does not include a title by default', async () => {
|
||||
const fixturePath = path.join(__dirname, 'fixtures', 'dart-json.json')
|
||||
const filePath = normalizeFilePath(path.relative(__dirname, fixturePath))
|
||||
const fileContent = fs.readFileSync(fixturePath, {encoding: 'utf8'})
|
||||
|
||||
const opts: ParseOptions = {
|
||||
parseErrors: true,
|
||||
trackedFiles: []
|
||||
}
|
||||
|
||||
const parser = new DartJsonParser(opts, 'dart')
|
||||
const result = await parser.parse(filePath, fileContent)
|
||||
const report = getReport([result])
|
||||
// Report should have the badge as the first line
|
||||
expect(report).toMatch(/^!\[Tests failed]/)
|
||||
})
|
||||
|
||||
it.each([
|
||||
['empty string', ''],
|
||||
['space', ' '],
|
||||
['tab', '\t'],
|
||||
['newline', '\n']
|
||||
])('report does not include a title when configured value is %s', async (_, reportTitle) => {
|
||||
const fixturePath = path.join(__dirname, 'fixtures', 'dart-json.json')
|
||||
const filePath = normalizeFilePath(path.relative(__dirname, fixturePath))
|
||||
const fileContent = fs.readFileSync(fixturePath, {encoding: 'utf8'})
|
||||
|
||||
const opts: ParseOptions = {
|
||||
parseErrors: true,
|
||||
trackedFiles: []
|
||||
}
|
||||
|
||||
const parser = new DartJsonParser(opts, 'dart')
|
||||
const result = await parser.parse(filePath, fileContent)
|
||||
const report = getReport([result], {
|
||||
...DEFAULT_OPTIONS,
|
||||
reportTitle
|
||||
})
|
||||
// Report should have the badge as the first line
|
||||
expect(report).toMatch(/^!\[Tests failed]/)
|
||||
})
|
||||
|
||||
it('report includes a custom report title', async () => {
|
||||
const fixturePath = path.join(__dirname, 'fixtures', 'dart-json.json')
|
||||
const filePath = normalizeFilePath(path.relative(__dirname, fixturePath))
|
||||
const fileContent = fs.readFileSync(fixturePath, {encoding: 'utf8'})
|
||||
|
||||
const opts: ParseOptions = {
|
||||
parseErrors: true,
|
||||
trackedFiles: []
|
||||
}
|
||||
|
||||
const parser = new DartJsonParser(opts, 'dart')
|
||||
const result = await parser.parse(filePath, fileContent)
|
||||
const report = getReport([result], {
|
||||
...DEFAULT_OPTIONS,
|
||||
reportTitle: 'My Custom Title'
|
||||
})
|
||||
// Report should have the title as the first line
|
||||
expect(report).toMatch(/^# My Custom Title\n/)
|
||||
})
|
||||
})
|
||||
|
||||
91
__tests__/dotnet-nunit.test.ts
Normal file
91
__tests__/dotnet-nunit.test.ts
Normal file
@@ -0,0 +1,91 @@
|
||||
import * as fs from 'fs'
|
||||
import * as path from 'path'
|
||||
|
||||
import {DotnetNunitParser} from '../src/parsers/dotnet-nunit/dotnet-nunit-parser'
|
||||
import {ParseOptions} from '../src/test-parser'
|
||||
import {DEFAULT_OPTIONS, getReport} from '../src/report/get-report'
|
||||
import {normalizeFilePath} from '../src/utils/path-utils'
|
||||
|
||||
describe('dotnet-nunit tests', () => {
|
||||
it('report from ./reports/dotnet test results matches snapshot', async () => {
|
||||
const fixturePath = path.join(__dirname, 'fixtures', 'dotnet-nunit.xml')
|
||||
const outputPath = path.join(__dirname, '__outputs__', 'dotnet-nunit.md')
|
||||
const filePath = normalizeFilePath(path.relative(__dirname, fixturePath))
|
||||
const fileContent = fs.readFileSync(fixturePath, {encoding: 'utf8'})
|
||||
|
||||
const opts: ParseOptions = {
|
||||
parseErrors: true,
|
||||
trackedFiles: ['DotnetTests.Unit/Calculator.cs', 'DotnetTests.NUnitV3Tests/CalculatorTests.cs']
|
||||
}
|
||||
|
||||
const parser = new DotnetNunitParser(opts)
|
||||
const result = await parser.parse(filePath, fileContent)
|
||||
expect(result).toMatchSnapshot()
|
||||
|
||||
const report = getReport([result])
|
||||
fs.mkdirSync(path.dirname(outputPath), {recursive: true})
|
||||
fs.writeFileSync(outputPath, report)
|
||||
})
|
||||
|
||||
it('report does not include a title by default', async () => {
|
||||
const fixturePath = path.join(__dirname, 'fixtures', 'dotnet-nunit.xml')
|
||||
const filePath = normalizeFilePath(path.relative(__dirname, fixturePath))
|
||||
const fileContent = fs.readFileSync(fixturePath, {encoding: 'utf8'})
|
||||
|
||||
const opts: ParseOptions = {
|
||||
parseErrors: true,
|
||||
trackedFiles: []
|
||||
}
|
||||
|
||||
const parser = new DotnetNunitParser(opts)
|
||||
const result = await parser.parse(filePath, fileContent)
|
||||
const report = getReport([result])
|
||||
// Report should have the badge as the first line
|
||||
expect(report).toMatch(/^!\[Tests failed]/)
|
||||
})
|
||||
|
||||
it.each([
|
||||
['empty string', ''],
|
||||
['space', ' '],
|
||||
['tab', '\t'],
|
||||
['newline', '\n']
|
||||
])('report does not include a title when configured value is %s', async (_, reportTitle) => {
|
||||
const fixturePath = path.join(__dirname, 'fixtures', 'dotnet-nunit.xml')
|
||||
const filePath = normalizeFilePath(path.relative(__dirname, fixturePath))
|
||||
const fileContent = fs.readFileSync(fixturePath, {encoding: 'utf8'})
|
||||
|
||||
const opts: ParseOptions = {
|
||||
parseErrors: true,
|
||||
trackedFiles: []
|
||||
}
|
||||
|
||||
const parser = new DotnetNunitParser(opts)
|
||||
const result = await parser.parse(filePath, fileContent)
|
||||
const report = getReport([result], {
|
||||
...DEFAULT_OPTIONS,
|
||||
reportTitle
|
||||
})
|
||||
// Report should have the badge as the first line
|
||||
expect(report).toMatch(/^!\[Tests failed]/)
|
||||
})
|
||||
|
||||
it('report includes a custom report title', async () => {
|
||||
const fixturePath = path.join(__dirname, 'fixtures', 'dotnet-nunit.xml')
|
||||
const filePath = normalizeFilePath(path.relative(__dirname, fixturePath))
|
||||
const fileContent = fs.readFileSync(fixturePath, {encoding: 'utf8'})
|
||||
|
||||
const opts: ParseOptions = {
|
||||
parseErrors: true,
|
||||
trackedFiles: []
|
||||
}
|
||||
|
||||
const parser = new DotnetNunitParser(opts)
|
||||
const result = await parser.parse(filePath, fileContent)
|
||||
const report = getReport([result], {
|
||||
...DEFAULT_OPTIONS,
|
||||
reportTitle: 'My Custom Title'
|
||||
})
|
||||
// Report should have the title as the first line
|
||||
expect(report).toMatch(/^# My Custom Title\n/)
|
||||
})
|
||||
})
|
||||
@@ -3,7 +3,7 @@ import * as path from 'path'
|
||||
|
||||
import {DotnetTrxParser} from '../src/parsers/dotnet-trx/dotnet-trx-parser'
|
||||
import {ParseOptions} from '../src/test-parser'
|
||||
import {getReport} from '../src/report/get-report'
|
||||
import {DEFAULT_OPTIONS, getReport, ReportOptions} from '../src/report/get-report'
|
||||
import {normalizeFilePath} from '../src/utils/path-utils'
|
||||
|
||||
describe('dotnet-trx tests', () => {
|
||||
@@ -23,9 +23,50 @@ describe('dotnet-trx tests', () => {
|
||||
expect(result.result).toBe('success')
|
||||
})
|
||||
|
||||
it('matches report snapshot', async () => {
|
||||
it('produces empty test run result when TestDefinitions is empty', async () => {
|
||||
const fixturePath = path.join(__dirname, 'fixtures', 'empty', 'dotnet-trx-empty-test-definitions.trx')
|
||||
const filePath = normalizeFilePath(path.relative(__dirname, fixturePath))
|
||||
const fileContent = fs.readFileSync(fixturePath, {encoding: 'utf8'})
|
||||
|
||||
const opts: ParseOptions = {
|
||||
parseErrors: true,
|
||||
trackedFiles: []
|
||||
}
|
||||
|
||||
const parser = new DotnetTrxParser(opts)
|
||||
const result = await parser.parse(filePath, fileContent)
|
||||
expect(result.tests).toBe(0)
|
||||
expect(result.result).toBe('success')
|
||||
})
|
||||
|
||||
it.each([['dotnet-trx'], ['dotnet-xunitv3']])('matches %s report snapshot', async reportName => {
|
||||
const fixturePath = path.join(__dirname, 'fixtures', `${reportName}.trx`)
|
||||
const outputPath = path.join(__dirname, '__outputs__', `${reportName}.md`)
|
||||
const filePath = normalizeFilePath(path.relative(__dirname, fixturePath))
|
||||
const fileContent = fs.readFileSync(fixturePath, {encoding: 'utf8'})
|
||||
|
||||
const opts: ParseOptions = {
|
||||
parseErrors: true,
|
||||
trackedFiles: [
|
||||
'DotnetTests.Unit/Calculator.cs',
|
||||
'DotnetTests.XUnitTests/CalculatorTests.cs',
|
||||
'DotnetTests.XUnitV3Tests/FixtureTests.cs'
|
||||
]
|
||||
//workDir: 'C:/Users/Michal/Workspace/dorny/test-check/reports/dotnet/'
|
||||
}
|
||||
|
||||
const parser = new DotnetTrxParser(opts)
|
||||
const result = await parser.parse(filePath, fileContent)
|
||||
expect(result).toMatchSnapshot()
|
||||
|
||||
const report = getReport([result])
|
||||
fs.mkdirSync(path.dirname(outputPath), {recursive: true})
|
||||
fs.writeFileSync(outputPath, report)
|
||||
})
|
||||
|
||||
it('matches report snapshot (only failed tests)', async () => {
|
||||
const fixturePath = path.join(__dirname, 'fixtures', 'dotnet-trx.trx')
|
||||
const outputPath = path.join(__dirname, '__outputs__', 'dotnet-trx.md')
|
||||
const outputPath = path.join(__dirname, '__outputs__', 'dotnet-trx-only-failed.md')
|
||||
const filePath = normalizeFilePath(path.relative(__dirname, fixturePath))
|
||||
const fileContent = fs.readFileSync(fixturePath, {encoding: 'utf8'})
|
||||
|
||||
@@ -39,7 +80,12 @@ describe('dotnet-trx tests', () => {
|
||||
const result = await parser.parse(filePath, fileContent)
|
||||
expect(result).toMatchSnapshot()
|
||||
|
||||
const report = getReport([result])
|
||||
const reportOptions: ReportOptions = {
|
||||
...DEFAULT_OPTIONS,
|
||||
listSuites: 'all',
|
||||
listTests: 'failed'
|
||||
}
|
||||
const report = getReport([result], reportOptions)
|
||||
fs.mkdirSync(path.dirname(outputPath), {recursive: true})
|
||||
fs.writeFileSync(outputPath, report)
|
||||
})
|
||||
@@ -63,4 +109,86 @@ describe('dotnet-trx tests', () => {
|
||||
fs.mkdirSync(path.dirname(outputPath), {recursive: true})
|
||||
fs.writeFileSync(outputPath, report)
|
||||
})
|
||||
|
||||
it('report from SilentNotes test results matches snapshot', async () => {
|
||||
const fixturePath = path.join(__dirname, 'fixtures', 'external', 'SilentNotes.trx')
|
||||
const outputPath = path.join(__dirname, '__outputs__', 'silent-notes-test-results.md')
|
||||
const filePath = normalizeFilePath(path.relative(__dirname, fixturePath))
|
||||
const fileContent = fs.readFileSync(fixturePath, {encoding: 'utf8'})
|
||||
|
||||
const opts: ParseOptions = {
|
||||
trackedFiles: [],
|
||||
parseErrors: true
|
||||
}
|
||||
|
||||
const parser = new DotnetTrxParser(opts)
|
||||
const result = await parser.parse(filePath, fileContent)
|
||||
expect(result).toMatchSnapshot()
|
||||
|
||||
const report = getReport([result])
|
||||
fs.mkdirSync(path.dirname(outputPath), {recursive: true})
|
||||
fs.writeFileSync(outputPath, report)
|
||||
})
|
||||
|
||||
it('report does not include a title by default', async () => {
|
||||
const fixturePath = path.join(__dirname, 'fixtures', 'dotnet-trx.trx')
|
||||
const filePath = normalizeFilePath(path.relative(__dirname, fixturePath))
|
||||
const fileContent = fs.readFileSync(fixturePath, {encoding: 'utf8'})
|
||||
|
||||
const opts: ParseOptions = {
|
||||
parseErrors: true,
|
||||
trackedFiles: []
|
||||
}
|
||||
|
||||
const parser = new DotnetTrxParser(opts)
|
||||
const result = await parser.parse(filePath, fileContent)
|
||||
const report = getReport([result])
|
||||
// Report should have the badge as the first line
|
||||
expect(report).toMatch(/^!\[Tests failed]/)
|
||||
})
|
||||
|
||||
it.each([
|
||||
['empty string', ''],
|
||||
['space', ' '],
|
||||
['tab', '\t'],
|
||||
['newline', '\n']
|
||||
])('report does not include a title when configured value is %s', async (_, reportTitle) => {
|
||||
const fixturePath = path.join(__dirname, 'fixtures', 'dotnet-trx.trx')
|
||||
const filePath = normalizeFilePath(path.relative(__dirname, fixturePath))
|
||||
const fileContent = fs.readFileSync(fixturePath, {encoding: 'utf8'})
|
||||
|
||||
const opts: ParseOptions = {
|
||||
parseErrors: true,
|
||||
trackedFiles: []
|
||||
}
|
||||
|
||||
const parser = new DotnetTrxParser(opts)
|
||||
const result = await parser.parse(filePath, fileContent)
|
||||
const report = getReport([result], {
|
||||
...DEFAULT_OPTIONS,
|
||||
reportTitle
|
||||
})
|
||||
// Report should have the badge as the first line
|
||||
expect(report).toMatch(/^!\[Tests failed]/)
|
||||
})
|
||||
|
||||
it('report includes a custom report title', async () => {
|
||||
const fixturePath = path.join(__dirname, 'fixtures', 'dotnet-trx.trx')
|
||||
const filePath = normalizeFilePath(path.relative(__dirname, fixturePath))
|
||||
const fileContent = fs.readFileSync(fixturePath, {encoding: 'utf8'})
|
||||
|
||||
const opts: ParseOptions = {
|
||||
parseErrors: true,
|
||||
trackedFiles: []
|
||||
}
|
||||
|
||||
const parser = new DotnetTrxParser(opts)
|
||||
const result = await parser.parse(filePath, fileContent)
|
||||
const report = getReport([result], {
|
||||
...DEFAULT_OPTIONS,
|
||||
reportTitle: 'My Custom Title'
|
||||
})
|
||||
// Report should have the title as the first line
|
||||
expect(report).toMatch(/^# My Custom Title\n/)
|
||||
})
|
||||
})
|
||||
|
||||
@@ -4,6 +4,7 @@
|
||||
{"suite":{"id":2,"platform":"vm","path":"test\\second_test.dart"},"type":"suite","time":11}
|
||||
{"test":{"id":3,"name":"loading test\\second_test.dart","suiteID":2,"groupIDs":[],"metadata":{"skip":false,"skipReason":null},"line":null,"column":null,"url":null},"type":"testStart","time":11}
|
||||
{"count":2,"type":"allSuites","time":11}
|
||||
{"testID":1,"messageType":"print","message":"Hello from the test","type":"print","time":3828}
|
||||
{"testID":3,"result":"success","skipped":false,"hidden":true,"type":"testDone","time":3649}
|
||||
{"group":{"id":4,"suiteID":2,"parentID":null,"name":null,"metadata":{"skip":false,"skipReason":null},"testCount":2,"line":null,"column":null,"url":null},"type":"group","time":3654}
|
||||
{"test":{"id":5,"name":"Timeout test","suiteID":2,"groupIDs":[4],"metadata":{"skip":false,"skipReason":null},"line":5,"column":3,"url":"file:///C:/Users/Michal/Workspace/dorny/test-check/reports/dart/test/second_test.dart"},"type":"testStart","time":3655}
|
||||
|
||||
112
__tests__/fixtures/dotnet-nunit.xml
Normal file
112
__tests__/fixtures/dotnet-nunit.xml
Normal file
@@ -0,0 +1,112 @@
|
||||
<?xml version="1.0" encoding="utf-8" standalone="no"?>
|
||||
<test-run id="0" runstate="Runnable" testcasecount="9" result="Failed" total="9" passed="3" failed="5" inconclusive="0" skipped="1" asserts="5" engine-version="3.12.0.0" clr-version="3.1.16" start-time="2021-06-28 20:23:41Z" end-time="2021-06-28 20:23:41Z" duration="0.230308">
|
||||
<command-line><![CDATA[C:\Users\Michal\.dotnet\tools\.store\nunit.consolerunner.netcore\3.12.0-beta2\nunit.consolerunner.netcore\3.12.0-beta2\tools\netcoreapp3.1\any\nunit3-console.dll reports/dotnet/DotnetTests.NUnitV3Tests/bin/Debug/netcoreapp3.1/DotnetTests.NUnitV3Tests.dll --result=__tests__/fixtures/dotnet-nunit.xml]]></command-line>
|
||||
<test-suite type="Assembly" id="1-1011" name="DotnetTests.NUnitV3Tests.dll" fullname="C:/Users/Michal/Workspace/dorny/test-reporter/reports/dotnet/DotnetTests.NUnitV3Tests/bin/Debug/netcoreapp3.1/DotnetTests.NUnitV3Tests.dll" runstate="Runnable" testcasecount="9" result="Failed" site="Child" start-time="2021-06-28T20:23:41.4594179Z" end-time="2021-06-28T20:23:41.5420313Z" duration="0.082553" total="9" passed="3" failed="5" warnings="0" inconclusive="0" skipped="1" asserts="5">
|
||||
<environment framework-version="3.13.2.0" clr-version="3.1.16" os-version="Microsoft Windows 10.0.19041" platform="Win32NT" cwd="C:\Users\Michal\Workspace\dorny\test-reporter" machine-name="DORNY-PC" user="Michal" user-domain="DORNY-PC" culture="sk-SK" uiculture="en-US" os-architecture="x64" />
|
||||
<settings>
|
||||
<setting name="DisposeRunners" value="True" />
|
||||
<setting name="WorkDirectory" value="C:\Users\Michal\Workspace\dorny\test-reporter" />
|
||||
<setting name="NumberOfTestWorkers" value="4" />
|
||||
</settings>
|
||||
<properties>
|
||||
<property name="_PID" value="30996" />
|
||||
<property name="_APPDOMAIN" value="nunit3-console" />
|
||||
</properties>
|
||||
<failure>
|
||||
<message><![CDATA[One or more child tests had errors]]></message>
|
||||
</failure>
|
||||
<test-suite type="TestSuite" id="1-1012" name="DotnetTests" fullname="DotnetTests" runstate="Runnable" testcasecount="9" result="Failed" site="Child" start-time="2021-06-28T20:23:41.4647482Z" end-time="2021-06-28T20:23:41.5420271Z" duration="0.077277" total="9" passed="3" failed="5" warnings="0" inconclusive="0" skipped="1" asserts="5">
|
||||
<failure>
|
||||
<message><![CDATA[One or more child tests had errors]]></message>
|
||||
</failure>
|
||||
<test-suite type="TestSuite" id="1-1013" name="XUnitTests" fullname="DotnetTests.XUnitTests" runstate="Runnable" testcasecount="9" result="Failed" site="Child" start-time="2021-06-28T20:23:41.4649710Z" end-time="2021-06-28T20:23:41.5420231Z" duration="0.077053" total="9" passed="3" failed="5" warnings="0" inconclusive="0" skipped="1" asserts="5">
|
||||
<failure>
|
||||
<message><![CDATA[One or more child tests had errors]]></message>
|
||||
</failure>
|
||||
<test-suite type="TestFixture" id="1-1000" name="CalculatorTests" fullname="DotnetTests.XUnitTests.CalculatorTests" classname="DotnetTests.XUnitTests.CalculatorTests" runstate="Runnable" testcasecount="9" result="Failed" site="Child" start-time="2021-06-28T20:23:41.4661195Z" end-time="2021-06-28T20:23:41.5420143Z" duration="0.075896" total="9" passed="3" failed="5" warnings="0" inconclusive="0" skipped="1" asserts="5">
|
||||
<failure>
|
||||
<message><![CDATA[One or more child tests had errors]]></message>
|
||||
</failure>
|
||||
<test-case id="1-1004" name="Exception_In_TargetTest" fullname="DotnetTests.XUnitTests.CalculatorTests.Exception_In_TargetTest" methodname="Exception_In_TargetTest" classname="DotnetTests.XUnitTests.CalculatorTests" runstate="Runnable" seed="2033520428" result="Failed" label="Error" start-time="2021-06-28T20:23:41.4684284Z" end-time="2021-06-28T20:23:41.4911288Z" duration="0.022805" asserts="0">
|
||||
<failure>
|
||||
<message><![CDATA[System.DivideByZeroException : Attempted to divide by zero.]]></message>
|
||||
<stack-trace><![CDATA[ at DotnetTests.Unit.Calculator.Div(Int32 a, Int32 b) in C:\Users\Michal\Workspace\dorny\test-reporter\reports\dotnet\DotnetTests.Unit\Calculator.cs:line 9
|
||||
at DotnetTests.XUnitTests.CalculatorTests.Exception_In_TargetTest() in C:\Users\Michal\Workspace\dorny\test-reporter\reports\dotnet\DotnetTests.NUnitV3Tests\CalculatorTests.cs:line 33]]></stack-trace>
|
||||
</failure>
|
||||
</test-case>
|
||||
<test-case id="1-1005" name="Exception_In_Test" fullname="DotnetTests.XUnitTests.CalculatorTests.Exception_In_Test" methodname="Exception_In_Test" classname="DotnetTests.XUnitTests.CalculatorTests" runstate="Runnable" seed="145176317" result="Failed" label="Error" start-time="2021-06-28T20:23:41.4930398Z" end-time="2021-06-28T20:23:41.4935666Z" duration="0.000528" asserts="0">
|
||||
<failure>
|
||||
<message><![CDATA[System.Exception : Test]]></message>
|
||||
<stack-trace><![CDATA[ at DotnetTests.XUnitTests.CalculatorTests.Exception_In_Test() in C:\Users\Michal\Workspace\dorny\test-reporter\reports\dotnet\DotnetTests.NUnitV3Tests\CalculatorTests.cs:line 39]]></stack-trace>
|
||||
</failure>
|
||||
</test-case>
|
||||
<test-case id="1-1003" name="Failing_Test" fullname="DotnetTests.XUnitTests.CalculatorTests.Failing_Test" methodname="Failing_Test" classname="DotnetTests.XUnitTests.CalculatorTests" runstate="Runnable" seed="189717168" result="Failed" start-time="2021-06-28T20:23:41.4935910Z" end-time="2021-06-28T20:23:41.5217516Z" duration="0.028162" asserts="1">
|
||||
<failure>
|
||||
<message><![CDATA[ Expected: 3
|
||||
But was: 2
|
||||
]]></message>
|
||||
<stack-trace><![CDATA[ at DotnetTests.XUnitTests.CalculatorTests.Failing_Test() in C:\Users\Michal\Workspace\dorny\test-reporter\reports\dotnet\DotnetTests.NUnitV3Tests\CalculatorTests.cs:line 27
|
||||
]]></stack-trace>
|
||||
</failure>
|
||||
<assertions>
|
||||
<assertion result="Failed">
|
||||
<message><![CDATA[ Expected: 3
|
||||
But was: 2
|
||||
]]></message>
|
||||
<stack-trace><![CDATA[ at DotnetTests.XUnitTests.CalculatorTests.Failing_Test() in C:\Users\Michal\Workspace\dorny\test-reporter\reports\dotnet\DotnetTests.NUnitV3Tests\CalculatorTests.cs:line 27
|
||||
]]></stack-trace>
|
||||
</assertion>
|
||||
</assertions>
|
||||
</test-case>
|
||||
<test-suite type="Theory" id="1-1010" name="Is_Even_Number" fullname="DotnetTests.XUnitTests.CalculatorTests.Is_Even_Number" classname="DotnetTests.XUnitTests.CalculatorTests" runstate="Runnable" testcasecount="2" result="Failed" site="Child" start-time="2021-06-28T20:23:41.5217837Z" end-time="2021-06-28T20:23:41.5251025Z" duration="0.003318" total="2" passed="1" failed="1" warnings="0" inconclusive="0" skipped="0" asserts="2">
|
||||
<properties>
|
||||
<property name="_JOINTYPE" value="Combinatorial" />
|
||||
</properties>
|
||||
<failure>
|
||||
<message><![CDATA[One or more child tests had errors]]></message>
|
||||
</failure>
|
||||
<test-case id="1-1008" name="Is_Even_Number(2)" fullname="DotnetTests.XUnitTests.CalculatorTests.Is_Even_Number(2)" methodname="Is_Even_Number" classname="DotnetTests.XUnitTests.CalculatorTests" runstate="Runnable" seed="2002556739" result="Passed" start-time="2021-06-28T20:23:41.5222381Z" end-time="2021-06-28T20:23:41.5228607Z" duration="0.000622" asserts="1" />
|
||||
<test-case id="1-1009" name="Is_Even_Number(3)" fullname="DotnetTests.XUnitTests.CalculatorTests.Is_Even_Number(3)" methodname="Is_Even_Number" classname="DotnetTests.XUnitTests.CalculatorTests" runstate="Runnable" seed="1722214143" result="Failed" start-time="2021-06-28T20:23:41.5228803Z" end-time="2021-06-28T20:23:41.5239781Z" duration="0.001098" asserts="1">
|
||||
<failure>
|
||||
<message><![CDATA[ Expected: True
|
||||
But was: False
|
||||
]]></message>
|
||||
<stack-trace><![CDATA[ at DotnetTests.XUnitTests.CalculatorTests.Is_Even_Number(Int32 i) in C:\Users\Michal\Workspace\dorny\test-reporter\reports\dotnet\DotnetTests.NUnitV3Tests\CalculatorTests.cs:line 61
|
||||
]]></stack-trace>
|
||||
</failure>
|
||||
<assertions>
|
||||
<assertion result="Failed">
|
||||
<message><![CDATA[ Expected: True
|
||||
But was: False
|
||||
]]></message>
|
||||
<stack-trace><![CDATA[ at DotnetTests.XUnitTests.CalculatorTests.Is_Even_Number(Int32 i) in C:\Users\Michal\Workspace\dorny\test-reporter\reports\dotnet\DotnetTests.NUnitV3Tests\CalculatorTests.cs:line 61
|
||||
]]></stack-trace>
|
||||
</assertion>
|
||||
</assertions>
|
||||
</test-case>
|
||||
</test-suite>
|
||||
<test-case id="1-1001" name="Passing_Test" fullname="DotnetTests.XUnitTests.CalculatorTests.Passing_Test" methodname="Passing_Test" classname="DotnetTests.XUnitTests.CalculatorTests" runstate="Runnable" seed="550330290" result="Passed" start-time="2021-06-28T20:23:41.5260365Z" end-time="2021-06-28T20:23:41.5262756Z" duration="0.000238" asserts="1" />
|
||||
<test-case id="1-1002" name="Passing_Test_With_Description" fullname="DotnetTests.XUnitTests.CalculatorTests.Passing_Test_With_Description" methodname="Passing_Test_With_Description" classname="DotnetTests.XUnitTests.CalculatorTests" runstate="Runnable" seed="1693317298" result="Passed" start-time="2021-06-28T20:23:41.5263998Z" end-time="2021-06-28T20:23:41.5265354Z" duration="0.000135" asserts="1">
|
||||
<properties>
|
||||
<property name="Description" value="Some description" />
|
||||
</properties>
|
||||
</test-case>
|
||||
<test-case id="1-1007" name="Skipped_Test" fullname="DotnetTests.XUnitTests.CalculatorTests.Skipped_Test" methodname="Skipped_Test" classname="DotnetTests.XUnitTests.CalculatorTests" runstate="Ignored" seed="1512653931" result="Skipped" label="Ignored" start-time="2021-06-28T20:23:41.5265550Z" end-time="2021-06-28T20:23:41.5269525Z" duration="0.000398" asserts="0">
|
||||
<properties>
|
||||
<property name="_SKIPREASON" value="Skipped" />
|
||||
</properties>
|
||||
<reason>
|
||||
<message><![CDATA[Skipped]]></message>
|
||||
</reason>
|
||||
</test-case>
|
||||
<test-case id="1-1006" name="Timeout_Test" fullname="DotnetTests.XUnitTests.CalculatorTests.Timeout_Test" methodname="Timeout_Test" classname="DotnetTests.XUnitTests.CalculatorTests" runstate="Runnable" seed="258810529" result="Failed" label="Test exceeded Timeout value 1ms." start-time="2021-06-28T20:23:41.5269651Z" end-time="2021-06-28T20:23:41.5419118Z" duration="0.014949" asserts="0">
|
||||
<properties>
|
||||
<property name="Timeout" value="1" />
|
||||
</properties>
|
||||
<failure />
|
||||
</test-case>
|
||||
</test-suite>
|
||||
</test-suite>
|
||||
</test-suite>
|
||||
</test-suite>
|
||||
</test-run>
|
||||
@@ -1,126 +1,184 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<TestRun id="b31581d7-9fcd-44c8-94e7-e0dee07cb5f1" name="Michal@DORNY-PC 2020-10-17 21:39:04" runUser="DORNY-PC\Michal" xmlns="http://microsoft.com/schemas/VisualStudio/TeamTest/2010">
|
||||
<Times creation="2020-10-17T21:39:04.3522129+02:00" queuing="2020-10-17T21:39:04.3522142+02:00" start="2020-10-17T21:39:03.3285079+02:00" finish="2020-10-17T21:39:04.3892722+02:00" />
|
||||
<TestSettings name="default" id="4796a3f4-6ab2-4919-aed2-7bd0f59e0405">
|
||||
<Deployment runDeploymentRoot="Michal_DORNY-PC_2020-10-17_21_39_04" />
|
||||
<TestRun id="29afb69d-9a66-49f7-bc93-a537a0db9862" name="Michal@DORNY-PC 2021-04-20 08:31:33" runUser="DORNY-PC\Michal" xmlns="http://microsoft.com/schemas/VisualStudio/TeamTest/2010">
|
||||
<Times creation="2021-04-20T08:31:33.0390097+02:00" queuing="2021-04-20T08:31:33.0390107+02:00" start="2021-04-20T08:31:31.9866971+02:00" finish="2021-04-20T08:31:33.1023832+02:00" />
|
||||
<TestSettings name="default" id="c6a4ef62-df4b-4845-9252-69f55bf26836">
|
||||
<Deployment runDeploymentRoot="Michal_DORNY-PC_2021-04-20_08_31_33" />
|
||||
</TestSettings>
|
||||
<Results>
|
||||
<UnitTestResult executionId="b112f30a-5b23-4fee-bc4e-15212fad3d40" testId="55ef2114-eb39-77d8-4031-3da68d0dc505" testName="DotnetTests.XUnitTests.CalculatorTests.Skipped_Test" computerName="DORNY-PC" duration="00:00:00.0010000" startTime="2020-10-17T21:39:04.2366767+02:00" endTime="2020-10-17T21:39:04.2366838+02:00" testType="13cdc9d9-ddb5-4fa4-a97d-d965ccfc6d4b" outcome="NotExecuted" testListId="8c84fa94-04c1-424b-9868-57a2d4851a1d" relativeResultsDirectory="b112f30a-5b23-4fee-bc4e-15212fad3d40">
|
||||
<UnitTestResult executionId="3181d0c8-88ef-42c2-8375-0be2ff86197d" testId="41c1dee7-2d17-4cf3-ae64-fae6fd9f9105" testName="DotnetTests.XUnitTests.CalculatorTests.Timeout_Test" computerName="DORNY-PC" duration="00:00:00.1084258" startTime="2021-04-20T08:31:32.9669698+02:00" endTime="2021-04-20T08:31:32.9669721+02:00" testType="13cdc9d9-ddb5-4fa4-a97d-d965ccfc6d4b" outcome="Passed" testListId="8c84fa94-04c1-424b-9868-57a2d4851a1d" relativeResultsDirectory="3181d0c8-88ef-42c2-8375-0be2ff86197d" />
|
||||
<UnitTestResult executionId="b7b68f4a-8e66-408f-965b-23f0073b6ee7" testId="3e8432a2-ff59-c925-c08b-bb7f9ee02dd1" testName="DotnetTests.XUnitTests.CalculatorTests.Passing_Test" computerName="DORNY-PC" duration="00:00:00.0001365" startTime="2021-04-20T08:31:33.0065641+02:00" endTime="2021-04-20T08:31:33.0065647+02:00" testType="13cdc9d9-ddb5-4fa4-a97d-d965ccfc6d4b" outcome="Passed" testListId="8c84fa94-04c1-424b-9868-57a2d4851a1d" relativeResultsDirectory="b7b68f4a-8e66-408f-965b-23f0073b6ee7" />
|
||||
<UnitTestResult executionId="79a318be-8f8d-42e4-8d54-58a3a054ef09" testId="c38e1acf-6419-5634-5ac6-0099b3891fe8" testName="Should be even number(i: 3)" computerName="DORNY-PC" duration="00:00:00.0006537" startTime="2021-04-20T08:31:32.9750302+02:00" endTime="2021-04-20T08:31:32.9750321+02:00" testType="13cdc9d9-ddb5-4fa4-a97d-d965ccfc6d4b" outcome="Failed" testListId="8c84fa94-04c1-424b-9868-57a2d4851a1d" relativeResultsDirectory="79a318be-8f8d-42e4-8d54-58a3a054ef09">
|
||||
<Output>
|
||||
<ErrorInfo>
|
||||
<Message>Assert.True() Failure
|
||||
Expected: True
|
||||
Actual: False</Message>
|
||||
<StackTrace> at DotnetTests.XUnitTests.CalculatorTests.Theory_With_Custom_Name(Int32 i) in C:\Users\Michal\Workspace\dorny\test-reporter\reports\dotnet\DotnetTests.XUnitTests\CalculatorTests.cs:line 67</StackTrace>
|
||||
</ErrorInfo>
|
||||
</Output>
|
||||
</UnitTestResult>
|
||||
<UnitTestResult executionId="9a6bc7d8-3abd-4369-aa02-418530a1bf59" testId="55ef2114-eb39-77d8-4031-3da68d0dc505" testName="DotnetTests.XUnitTests.CalculatorTests.Skipped_Test" computerName="DORNY-PC" duration="00:00:00.0010000" startTime="2021-04-20T08:31:33.0075607+02:00" endTime="2021-04-20T08:31:33.0075624+02:00" testType="13cdc9d9-ddb5-4fa4-a97d-d965ccfc6d4b" outcome="NotExecuted" testListId="8c84fa94-04c1-424b-9868-57a2d4851a1d" relativeResultsDirectory="9a6bc7d8-3abd-4369-aa02-418530a1bf59">
|
||||
<Output>
|
||||
<StdOut>Skipped test</StdOut>
|
||||
</Output>
|
||||
</UnitTestResult>
|
||||
<UnitTestResult executionId="0fef32cb-e95a-453c-a925-6edbcc7244b4" testId="3bd3c92f-b8b2-2f41-9211-951100aa2540" testName="DotnetTests.XUnitTests.CalculatorTests.Failing_Test" computerName="DORNY-PC" duration="00:00:00.0032953" startTime="2020-10-17T21:39:04.2341773+02:00" endTime="2020-10-17T21:39:04.2341789+02:00" testType="13cdc9d9-ddb5-4fa4-a97d-d965ccfc6d4b" outcome="Failed" testListId="8c84fa94-04c1-424b-9868-57a2d4851a1d" relativeResultsDirectory="0fef32cb-e95a-453c-a925-6edbcc7244b4">
|
||||
<UnitTestResult executionId="30c568c6-c120-48b0-8ebf-6d852b034bd9" testId="a171b9bb-97df-a0d8-c112-02ea0ea98607" testName="Custom Name" computerName="DORNY-PC" duration="00:00:00.0001371" startTime="2021-04-20T08:31:32.9751544+02:00" endTime="2021-04-20T08:31:32.9751546+02:00" testType="13cdc9d9-ddb5-4fa4-a97d-d965ccfc6d4b" outcome="Passed" testListId="8c84fa94-04c1-424b-9868-57a2d4851a1d" relativeResultsDirectory="30c568c6-c120-48b0-8ebf-6d852b034bd9" />
|
||||
<UnitTestResult executionId="623c7fd2-5b76-4a14-b0c8-300678630c3b" testId="d3708bd6-b784-b890-48b3-965f4ac35bc9" testName="Should be even number(i: 2)" computerName="DORNY-PC" duration="00:00:00.0000097" startTime="2021-04-20T08:31:32.9751012+02:00" endTime="2021-04-20T08:31:32.9751014+02:00" testType="13cdc9d9-ddb5-4fa4-a97d-d965ccfc6d4b" outcome="Passed" testListId="8c84fa94-04c1-424b-9868-57a2d4851a1d" relativeResultsDirectory="623c7fd2-5b76-4a14-b0c8-300678630c3b" />
|
||||
<UnitTestResult executionId="4cbddbf1-3df5-4098-a6e8-715249d865df" testId="e4d3ab06-acb8-d3f7-0518-e81c04c0108a" testName="DotnetTests.XUnitTests.CalculatorTests.Exception_In_TargetTest" computerName="DORNY-PC" duration="00:00:00.0008377" startTime="2021-04-20T08:31:32.9767893+02:00" endTime="2021-04-20T08:31:32.9767912+02:00" testType="13cdc9d9-ddb5-4fa4-a97d-d965ccfc6d4b" outcome="Failed" testListId="8c84fa94-04c1-424b-9868-57a2d4851a1d" relativeResultsDirectory="4cbddbf1-3df5-4098-a6e8-715249d865df">
|
||||
<Output>
|
||||
<ErrorInfo>
|
||||
<Message>System.DivideByZeroException : Attempted to divide by zero.</Message>
|
||||
<StackTrace> at DotnetTests.Unit.Calculator.Div(Int32 a, Int32 b) in C:\Users\Michal\Workspace\dorny\test-reporter\reports\dotnet\DotnetTests.Unit\Calculator.cs:line 9
|
||||
at DotnetTests.XUnitTests.CalculatorTests.Exception_In_TargetTest() in C:\Users\Michal\Workspace\dorny\test-reporter\reports\dotnet\DotnetTests.XUnitTests\CalculatorTests.cs:line 33</StackTrace>
|
||||
</ErrorInfo>
|
||||
</Output>
|
||||
</UnitTestResult>
|
||||
<UnitTestResult executionId="ef238df8-c951-4e0f-b32b-4bc9162bc031" testId="eda9288a-92d4-85a5-dd8e-96ed8a58af10" testName="DotnetTests.XUnitTests.CalculatorTests.Exception_In_Test" computerName="DORNY-PC" duration="00:00:00.0025175" startTime="2021-04-20T08:31:32.8646547+02:00" endTime="2021-04-20T08:31:32.8647418+02:00" testType="13cdc9d9-ddb5-4fa4-a97d-d965ccfc6d4b" outcome="Failed" testListId="8c84fa94-04c1-424b-9868-57a2d4851a1d" relativeResultsDirectory="ef238df8-c951-4e0f-b32b-4bc9162bc031">
|
||||
<Output>
|
||||
<ErrorInfo>
|
||||
<Message>System.Exception : Test</Message>
|
||||
<StackTrace> at DotnetTests.XUnitTests.CalculatorTests.Exception_In_Test() in C:\Users\Michal\Workspace\dorny\test-reporter\reports\dotnet\DotnetTests.XUnitTests\CalculatorTests.cs:line 39</StackTrace>
|
||||
</ErrorInfo>
|
||||
</Output>
|
||||
</UnitTestResult>
|
||||
<UnitTestResult executionId="705f6132-7d4c-48c4-afdc-cadb427a4255" testId="3bd3c92f-b8b2-2f41-9211-951100aa2540" testName="DotnetTests.XUnitTests.CalculatorTests.Failing_Test" computerName="DORNY-PC" duration="00:00:00.0038697" startTime="2021-04-20T08:31:32.9742636+02:00" endTime="2021-04-20T08:31:32.9742658+02:00" testType="13cdc9d9-ddb5-4fa4-a97d-d965ccfc6d4b" outcome="Failed" testListId="8c84fa94-04c1-424b-9868-57a2d4851a1d" relativeResultsDirectory="705f6132-7d4c-48c4-afdc-cadb427a4255">
|
||||
<Output>
|
||||
<ErrorInfo>
|
||||
<Message>Assert.Equal() Failure
|
||||
Expected: 3
|
||||
Actual: 2</Message>
|
||||
<StackTrace> at DotnetTests.XUnitTests.CalculatorTests.Failing_Test() in C:\Users\Michal\Workspace\dorny\test-check\reports\dotnet\DotnetTests.XUnitTests\CalculatorTests.cs:line 27</StackTrace>
|
||||
<StackTrace> at DotnetTests.XUnitTests.CalculatorTests.Failing_Test() in C:\Users\Michal\Workspace\dorny\test-reporter\reports\dotnet\DotnetTests.XUnitTests\CalculatorTests.cs:line 27</StackTrace>
|
||||
</ErrorInfo>
|
||||
</Output>
|
||||
</UnitTestResult>
|
||||
<UnitTestResult executionId="005348f3-5302-483e-821d-ee3469d212ea" testId="41c1dee7-2d17-4cf3-ae64-fae6fd9f9105" testName="DotnetTests.XUnitTests.CalculatorTests.Timeout_Test" computerName="DORNY-PC" duration="00:00:00.1022821" startTime="2020-10-17T21:39:04.2285304+02:00" endTime="2020-10-17T21:39:04.2285320+02:00" testType="13cdc9d9-ddb5-4fa4-a97d-d965ccfc6d4b" outcome="Passed" testListId="8c84fa94-04c1-424b-9868-57a2d4851a1d" relativeResultsDirectory="005348f3-5302-483e-821d-ee3469d212ea" />
|
||||
<UnitTestResult executionId="4cb3c100-d0bb-4d88-b017-b0b4da2fc2a3" testId="a171b9bb-97df-a0d8-c112-02ea0ea98607" testName="Custom Name" computerName="DORNY-PC" duration="00:00:00.0001030" startTime="2020-10-17T21:39:04.2342433+02:00" endTime="2020-10-17T21:39:04.2342435+02:00" testType="13cdc9d9-ddb5-4fa4-a97d-d965ccfc6d4b" outcome="Passed" testListId="8c84fa94-04c1-424b-9868-57a2d4851a1d" relativeResultsDirectory="4cb3c100-d0bb-4d88-b017-b0b4da2fc2a3" />
|
||||
<UnitTestResult executionId="baa7bd90-c1ed-4b62-bc41-ae23457aafb5" testId="eda9288a-92d4-85a5-dd8e-96ed8a58af10" testName="DotnetTests.XUnitTests.CalculatorTests.Exception_In_Test" computerName="DORNY-PC" duration="00:00:00.0022728" startTime="2020-10-17T21:39:04.1309244+02:00" endTime="2020-10-17T21:39:04.1309960+02:00" testType="13cdc9d9-ddb5-4fa4-a97d-d965ccfc6d4b" outcome="Failed" testListId="8c84fa94-04c1-424b-9868-57a2d4851a1d" relativeResultsDirectory="baa7bd90-c1ed-4b62-bc41-ae23457aafb5">
|
||||
<UnitTestResult executionId="cf210795-6f94-400f-afc6-a49baadfd249" testId="0980711c-d788-32eb-19b3-1d302a0e8df5" testName="DotnetTests.XUnitTests.CalculatorTests.Is_Even_Number(i: 2)" computerName="DORNY-PC" duration="00:00:00.0000078" startTime="2021-04-20T08:31:32.9775134+02:00" endTime="2021-04-20T08:31:32.9775138+02:00" testType="13cdc9d9-ddb5-4fa4-a97d-d965ccfc6d4b" outcome="Passed" testListId="8c84fa94-04c1-424b-9868-57a2d4851a1d" relativeResultsDirectory="cf210795-6f94-400f-afc6-a49baadfd249" />
|
||||
<UnitTestResult executionId="e3d9bb4a-36b1-467f-a851-85bd210301e3" testId="787d63a6-11d7-2fda-3fad-9d980fa5e70d" testName="DotnetTests.XUnitTests.CalculatorTests.Is_Even_Number(i: 3)" computerName="DORNY-PC" duration="00:00:00.0004141" startTime="2021-04-20T08:31:32.9773980+02:00" endTime="2021-04-20T08:31:32.9773999+02:00" testType="13cdc9d9-ddb5-4fa4-a97d-d965ccfc6d4b" outcome="Failed" testListId="8c84fa94-04c1-424b-9868-57a2d4851a1d" relativeResultsDirectory="e3d9bb4a-36b1-467f-a851-85bd210301e3">
|
||||
<Output>
|
||||
<ErrorInfo>
|
||||
<Message>System.Exception : Test</Message>
|
||||
<StackTrace> at DotnetTests.XUnitTests.CalculatorTests.Exception_In_Test() in C:\Users\Michal\Workspace\dorny\test-check\reports\dotnet\DotnetTests.XUnitTests\CalculatorTests.cs:line 39</StackTrace>
|
||||
<Message>Assert.True() Failure
|
||||
Expected: True
|
||||
Actual: False</Message>
|
||||
<StackTrace> at DotnetTests.XUnitTests.CalculatorTests.Is_Even_Number(Int32 i) in C:\Users\Michal\Workspace\dorny\test-reporter\reports\dotnet\DotnetTests.XUnitTests\CalculatorTests.cs:line 59</StackTrace>
|
||||
</ErrorInfo>
|
||||
</Output>
|
||||
</UnitTestResult>
|
||||
<UnitTestResult executionId="12a3ab6a-64d8-4001-94ff-cc563228d7ba" testId="e4d3ab06-acb8-d3f7-0518-e81c04c0108a" testName="DotnetTests.XUnitTests.CalculatorTests.Exception_In_TargetTest" computerName="DORNY-PC" duration="00:00:00.0004975" startTime="2020-10-17T21:39:04.2354587+02:00" endTime="2020-10-17T21:39:04.2354600+02:00" testType="13cdc9d9-ddb5-4fa4-a97d-d965ccfc6d4b" outcome="Failed" testListId="8c84fa94-04c1-424b-9868-57a2d4851a1d" relativeResultsDirectory="12a3ab6a-64d8-4001-94ff-cc563228d7ba">
|
||||
<Output>
|
||||
<ErrorInfo>
|
||||
<Message>System.DivideByZeroException : Attempted to divide by zero.</Message>
|
||||
<StackTrace> at DotnetTests.Unit.Calculator.Div(Int32 a, Int32 b) in C:\Users\Michal\Workspace\dorny\test-check\reports\dotnet\DotnetTests.Unit\Calculator.cs:line 9
|
||||
at DotnetTests.XUnitTests.CalculatorTests.Exception_In_TargetTest() in C:\Users\Michal\Workspace\dorny\test-check\reports\dotnet\DotnetTests.XUnitTests\CalculatorTests.cs:line 33</StackTrace>
|
||||
</ErrorInfo>
|
||||
</Output>
|
||||
</UnitTestResult>
|
||||
<UnitTestResult executionId="e29e1ba0-ebb3-45cd-aa1a-f60f23a6d509" testId="3e8432a2-ff59-c925-c08b-bb7f9ee02dd1" testName="DotnetTests.XUnitTests.CalculatorTests.Passing_Test" computerName="DORNY-PC" duration="00:00:00.0001254" startTime="2020-10-17T21:39:04.2355437+02:00" endTime="2020-10-17T21:39:04.2355439+02:00" testType="13cdc9d9-ddb5-4fa4-a97d-d965ccfc6d4b" outcome="Passed" testListId="8c84fa94-04c1-424b-9868-57a2d4851a1d" relativeResultsDirectory="e29e1ba0-ebb3-45cd-aa1a-f60f23a6d509" />
|
||||
</Results>
|
||||
<TestDefinitions>
|
||||
<UnitTest name="DotnetTests.XUnitTests.CalculatorTests.Failing_Test" storage="c:\users\michal\workspace\dorny\test-check\reports\dotnet\dotnettests.xunittests\bin\debug\netcoreapp3.1\dotnettests.xunittests.dll" id="3bd3c92f-b8b2-2f41-9211-951100aa2540">
|
||||
<Execution id="0fef32cb-e95a-453c-a925-6edbcc7244b4" />
|
||||
<TestMethod codeBase="C:\Users\Michal\Workspace\dorny\test-check\reports\dotnet\DotnetTests.XUnitTests\bin\Debug\netcoreapp3.1\DotnetTests.XUnitTests.dll" adapterTypeName="executor://xunit/VsTestRunner2/netcoreapp" className="DotnetTests.XUnitTests.CalculatorTests" name="Failing_Test" />
|
||||
<UnitTest name="DotnetTests.XUnitTests.CalculatorTests.Exception_In_TargetTest" storage="c:\users\michal\workspace\dorny\test-reporter\reports\dotnet\dotnettests.xunittests\bin\debug\netcoreapp3.1\dotnettests.xunittests.dll" id="e4d3ab06-acb8-d3f7-0518-e81c04c0108a">
|
||||
<Execution id="4cbddbf1-3df5-4098-a6e8-715249d865df" />
|
||||
<TestMethod codeBase="C:\Users\Michal\Workspace\dorny\test-reporter\reports\dotnet\DotnetTests.XUnitTests\bin\Debug\netcoreapp3.1\DotnetTests.XUnitTests.dll" adapterTypeName="executor://xunit/VsTestRunner2/netcoreapp" className="DotnetTests.XUnitTests.CalculatorTests" name="Exception_In_TargetTest" />
|
||||
</UnitTest>
|
||||
<UnitTest name="DotnetTests.XUnitTests.CalculatorTests.Exception_In_Test" storage="c:\users\michal\workspace\dorny\test-check\reports\dotnet\dotnettests.xunittests\bin\debug\netcoreapp3.1\dotnettests.xunittests.dll" id="eda9288a-92d4-85a5-dd8e-96ed8a58af10">
|
||||
<Execution id="baa7bd90-c1ed-4b62-bc41-ae23457aafb5" />
|
||||
<TestMethod codeBase="C:\Users\Michal\Workspace\dorny\test-check\reports\dotnet\DotnetTests.XUnitTests\bin\Debug\netcoreapp3.1\DotnetTests.XUnitTests.dll" adapterTypeName="executor://xunit/VsTestRunner2/netcoreapp" className="DotnetTests.XUnitTests.CalculatorTests" name="Exception_In_Test" />
|
||||
<UnitTest name="Should be even number(i: 3)" storage="c:\users\michal\workspace\dorny\test-reporter\reports\dotnet\dotnettests.xunittests\bin\debug\netcoreapp3.1\dotnettests.xunittests.dll" id="c38e1acf-6419-5634-5ac6-0099b3891fe8">
|
||||
<Execution id="79a318be-8f8d-42e4-8d54-58a3a054ef09" />
|
||||
<TestMethod codeBase="C:\Users\Michal\Workspace\dorny\test-reporter\reports\dotnet\DotnetTests.XUnitTests\bin\Debug\netcoreapp3.1\DotnetTests.XUnitTests.dll" adapterTypeName="executor://xunit/VsTestRunner2/netcoreapp" className="DotnetTests.XUnitTests.CalculatorTests" name="Theory_With_Custom_Name" />
|
||||
</UnitTest>
|
||||
<UnitTest name="DotnetTests.XUnitTests.CalculatorTests.Skipped_Test" storage="c:\users\michal\workspace\dorny\test-check\reports\dotnet\dotnettests.xunittests\bin\debug\netcoreapp3.1\dotnettests.xunittests.dll" id="55ef2114-eb39-77d8-4031-3da68d0dc505">
|
||||
<Execution id="b112f30a-5b23-4fee-bc4e-15212fad3d40" />
|
||||
<TestMethod codeBase="C:\Users\Michal\Workspace\dorny\test-check\reports\dotnet\DotnetTests.XUnitTests\bin\Debug\netcoreapp3.1\DotnetTests.XUnitTests.dll" adapterTypeName="executor://xunit/VsTestRunner2/netcoreapp" className="DotnetTests.XUnitTests.CalculatorTests" name="Skipped_Test" />
|
||||
<UnitTest name="DotnetTests.XUnitTests.CalculatorTests.Failing_Test" storage="c:\users\michal\workspace\dorny\test-reporter\reports\dotnet\dotnettests.xunittests\bin\debug\netcoreapp3.1\dotnettests.xunittests.dll" id="3bd3c92f-b8b2-2f41-9211-951100aa2540">
|
||||
<Execution id="705f6132-7d4c-48c4-afdc-cadb427a4255" />
|
||||
<TestMethod codeBase="C:\Users\Michal\Workspace\dorny\test-reporter\reports\dotnet\DotnetTests.XUnitTests\bin\Debug\netcoreapp3.1\DotnetTests.XUnitTests.dll" adapterTypeName="executor://xunit/VsTestRunner2/netcoreapp" className="DotnetTests.XUnitTests.CalculatorTests" name="Failing_Test" />
|
||||
</UnitTest>
|
||||
<UnitTest name="Custom Name" storage="c:\users\michal\workspace\dorny\test-check\reports\dotnet\dotnettests.xunittests\bin\debug\netcoreapp3.1\dotnettests.xunittests.dll" id="a171b9bb-97df-a0d8-c112-02ea0ea98607">
|
||||
<Execution id="4cb3c100-d0bb-4d88-b017-b0b4da2fc2a3" />
|
||||
<TestMethod codeBase="C:\Users\Michal\Workspace\dorny\test-check\reports\dotnet\DotnetTests.XUnitTests\bin\Debug\netcoreapp3.1\DotnetTests.XUnitTests.dll" adapterTypeName="executor://xunit/VsTestRunner2/netcoreapp" className="DotnetTests.XUnitTests.CalculatorTests" name="Passing_Test_With_Name" />
|
||||
<UnitTest name="DotnetTests.XUnitTests.CalculatorTests.Exception_In_Test" storage="c:\users\michal\workspace\dorny\test-reporter\reports\dotnet\dotnettests.xunittests\bin\debug\netcoreapp3.1\dotnettests.xunittests.dll" id="eda9288a-92d4-85a5-dd8e-96ed8a58af10">
|
||||
<Execution id="ef238df8-c951-4e0f-b32b-4bc9162bc031" />
|
||||
<TestMethod codeBase="C:\Users\Michal\Workspace\dorny\test-reporter\reports\dotnet\DotnetTests.XUnitTests\bin\Debug\netcoreapp3.1\DotnetTests.XUnitTests.dll" adapterTypeName="executor://xunit/VsTestRunner2/netcoreapp" className="DotnetTests.XUnitTests.CalculatorTests" name="Exception_In_Test" />
|
||||
</UnitTest>
|
||||
<UnitTest name="DotnetTests.XUnitTests.CalculatorTests.Passing_Test" storage="c:\users\michal\workspace\dorny\test-check\reports\dotnet\dotnettests.xunittests\bin\debug\netcoreapp3.1\dotnettests.xunittests.dll" id="3e8432a2-ff59-c925-c08b-bb7f9ee02dd1">
|
||||
<Execution id="e29e1ba0-ebb3-45cd-aa1a-f60f23a6d509" />
|
||||
<TestMethod codeBase="C:\Users\Michal\Workspace\dorny\test-check\reports\dotnet\DotnetTests.XUnitTests\bin\Debug\netcoreapp3.1\DotnetTests.XUnitTests.dll" adapterTypeName="executor://xunit/VsTestRunner2/netcoreapp" className="DotnetTests.XUnitTests.CalculatorTests" name="Passing_Test" />
|
||||
<UnitTest name="DotnetTests.XUnitTests.CalculatorTests.Skipped_Test" storage="c:\users\michal\workspace\dorny\test-reporter\reports\dotnet\dotnettests.xunittests\bin\debug\netcoreapp3.1\dotnettests.xunittests.dll" id="55ef2114-eb39-77d8-4031-3da68d0dc505">
|
||||
<Execution id="9a6bc7d8-3abd-4369-aa02-418530a1bf59" />
|
||||
<TestMethod codeBase="C:\Users\Michal\Workspace\dorny\test-reporter\reports\dotnet\DotnetTests.XUnitTests\bin\Debug\netcoreapp3.1\DotnetTests.XUnitTests.dll" adapterTypeName="executor://xunit/VsTestRunner2/netcoreapp" className="DotnetTests.XUnitTests.CalculatorTests" name="Skipped_Test" />
|
||||
</UnitTest>
|
||||
<UnitTest name="DotnetTests.XUnitTests.CalculatorTests.Timeout_Test" storage="c:\users\michal\workspace\dorny\test-check\reports\dotnet\dotnettests.xunittests\bin\debug\netcoreapp3.1\dotnettests.xunittests.dll" id="41c1dee7-2d17-4cf3-ae64-fae6fd9f9105">
|
||||
<Execution id="005348f3-5302-483e-821d-ee3469d212ea" />
|
||||
<TestMethod codeBase="C:\Users\Michal\Workspace\dorny\test-check\reports\dotnet\DotnetTests.XUnitTests\bin\Debug\netcoreapp3.1\DotnetTests.XUnitTests.dll" adapterTypeName="executor://xunit/VsTestRunner2/netcoreapp" className="DotnetTests.XUnitTests.CalculatorTests" name="Timeout_Test" />
|
||||
<UnitTest name="DotnetTests.XUnitTests.CalculatorTests.Passing_Test" storage="c:\users\michal\workspace\dorny\test-reporter\reports\dotnet\dotnettests.xunittests\bin\debug\netcoreapp3.1\dotnettests.xunittests.dll" id="3e8432a2-ff59-c925-c08b-bb7f9ee02dd1">
|
||||
<Execution id="b7b68f4a-8e66-408f-965b-23f0073b6ee7" />
|
||||
<TestMethod codeBase="C:\Users\Michal\Workspace\dorny\test-reporter\reports\dotnet\DotnetTests.XUnitTests\bin\Debug\netcoreapp3.1\DotnetTests.XUnitTests.dll" adapterTypeName="executor://xunit/VsTestRunner2/netcoreapp" className="DotnetTests.XUnitTests.CalculatorTests" name="Passing_Test" />
|
||||
</UnitTest>
|
||||
<UnitTest name="DotnetTests.XUnitTests.CalculatorTests.Exception_In_TargetTest" storage="c:\users\michal\workspace\dorny\test-check\reports\dotnet\dotnettests.xunittests\bin\debug\netcoreapp3.1\dotnettests.xunittests.dll" id="e4d3ab06-acb8-d3f7-0518-e81c04c0108a">
|
||||
<Execution id="12a3ab6a-64d8-4001-94ff-cc563228d7ba" />
|
||||
<TestMethod codeBase="C:\Users\Michal\Workspace\dorny\test-check\reports\dotnet\DotnetTests.XUnitTests\bin\Debug\netcoreapp3.1\DotnetTests.XUnitTests.dll" adapterTypeName="executor://xunit/VsTestRunner2/netcoreapp" className="DotnetTests.XUnitTests.CalculatorTests" name="Exception_In_TargetTest" />
|
||||
<UnitTest name="DotnetTests.XUnitTests.CalculatorTests.Is_Even_Number(i: 2)" storage="c:\users\michal\workspace\dorny\test-reporter\reports\dotnet\dotnettests.xunittests\bin\debug\netcoreapp3.1\dotnettests.xunittests.dll" id="0980711c-d788-32eb-19b3-1d302a0e8df5">
|
||||
<Execution id="cf210795-6f94-400f-afc6-a49baadfd249" />
|
||||
<TestMethod codeBase="C:\Users\Michal\Workspace\dorny\test-reporter\reports\dotnet\DotnetTests.XUnitTests\bin\Debug\netcoreapp3.1\DotnetTests.XUnitTests.dll" adapterTypeName="executor://xunit/VsTestRunner2/netcoreapp" className="DotnetTests.XUnitTests.CalculatorTests" name="Is_Even_Number" />
|
||||
</UnitTest>
|
||||
<UnitTest name="Custom Name" storage="c:\users\michal\workspace\dorny\test-reporter\reports\dotnet\dotnettests.xunittests\bin\debug\netcoreapp3.1\dotnettests.xunittests.dll" id="a171b9bb-97df-a0d8-c112-02ea0ea98607">
|
||||
<Execution id="30c568c6-c120-48b0-8ebf-6d852b034bd9" />
|
||||
<TestMethod codeBase="C:\Users\Michal\Workspace\dorny\test-reporter\reports\dotnet\DotnetTests.XUnitTests\bin\Debug\netcoreapp3.1\DotnetTests.XUnitTests.dll" adapterTypeName="executor://xunit/VsTestRunner2/netcoreapp" className="DotnetTests.XUnitTests.CalculatorTests" name="Passing_Test_With_Name" />
|
||||
</UnitTest>
|
||||
<UnitTest name="Should be even number(i: 2)" storage="c:\users\michal\workspace\dorny\test-reporter\reports\dotnet\dotnettests.xunittests\bin\debug\netcoreapp3.1\dotnettests.xunittests.dll" id="d3708bd6-b784-b890-48b3-965f4ac35bc9">
|
||||
<Execution id="623c7fd2-5b76-4a14-b0c8-300678630c3b" />
|
||||
<TestMethod codeBase="C:\Users\Michal\Workspace\dorny\test-reporter\reports\dotnet\DotnetTests.XUnitTests\bin\Debug\netcoreapp3.1\DotnetTests.XUnitTests.dll" adapterTypeName="executor://xunit/VsTestRunner2/netcoreapp" className="DotnetTests.XUnitTests.CalculatorTests" name="Theory_With_Custom_Name" />
|
||||
</UnitTest>
|
||||
<UnitTest name="DotnetTests.XUnitTests.CalculatorTests.Timeout_Test" storage="c:\users\michal\workspace\dorny\test-reporter\reports\dotnet\dotnettests.xunittests\bin\debug\netcoreapp3.1\dotnettests.xunittests.dll" id="41c1dee7-2d17-4cf3-ae64-fae6fd9f9105">
|
||||
<Execution id="3181d0c8-88ef-42c2-8375-0be2ff86197d" />
|
||||
<TestMethod codeBase="C:\Users\Michal\Workspace\dorny\test-reporter\reports\dotnet\DotnetTests.XUnitTests\bin\Debug\netcoreapp3.1\DotnetTests.XUnitTests.dll" adapterTypeName="executor://xunit/VsTestRunner2/netcoreapp" className="DotnetTests.XUnitTests.CalculatorTests" name="Timeout_Test" />
|
||||
</UnitTest>
|
||||
<UnitTest name="DotnetTests.XUnitTests.CalculatorTests.Is_Even_Number(i: 3)" storage="c:\users\michal\workspace\dorny\test-reporter\reports\dotnet\dotnettests.xunittests\bin\debug\netcoreapp3.1\dotnettests.xunittests.dll" id="787d63a6-11d7-2fda-3fad-9d980fa5e70d">
|
||||
<Execution id="e3d9bb4a-36b1-467f-a851-85bd210301e3" />
|
||||
<TestMethod codeBase="C:\Users\Michal\Workspace\dorny\test-reporter\reports\dotnet\DotnetTests.XUnitTests\bin\Debug\netcoreapp3.1\DotnetTests.XUnitTests.dll" adapterTypeName="executor://xunit/VsTestRunner2/netcoreapp" className="DotnetTests.XUnitTests.CalculatorTests" name="Is_Even_Number" />
|
||||
</UnitTest>
|
||||
</TestDefinitions>
|
||||
<TestEntries>
|
||||
<TestEntry testId="55ef2114-eb39-77d8-4031-3da68d0dc505" executionId="b112f30a-5b23-4fee-bc4e-15212fad3d40" testListId="8c84fa94-04c1-424b-9868-57a2d4851a1d" />
|
||||
<TestEntry testId="3bd3c92f-b8b2-2f41-9211-951100aa2540" executionId="0fef32cb-e95a-453c-a925-6edbcc7244b4" testListId="8c84fa94-04c1-424b-9868-57a2d4851a1d" />
|
||||
<TestEntry testId="41c1dee7-2d17-4cf3-ae64-fae6fd9f9105" executionId="005348f3-5302-483e-821d-ee3469d212ea" testListId="8c84fa94-04c1-424b-9868-57a2d4851a1d" />
|
||||
<TestEntry testId="a171b9bb-97df-a0d8-c112-02ea0ea98607" executionId="4cb3c100-d0bb-4d88-b017-b0b4da2fc2a3" testListId="8c84fa94-04c1-424b-9868-57a2d4851a1d" />
|
||||
<TestEntry testId="eda9288a-92d4-85a5-dd8e-96ed8a58af10" executionId="baa7bd90-c1ed-4b62-bc41-ae23457aafb5" testListId="8c84fa94-04c1-424b-9868-57a2d4851a1d" />
|
||||
<TestEntry testId="e4d3ab06-acb8-d3f7-0518-e81c04c0108a" executionId="12a3ab6a-64d8-4001-94ff-cc563228d7ba" testListId="8c84fa94-04c1-424b-9868-57a2d4851a1d" />
|
||||
<TestEntry testId="3e8432a2-ff59-c925-c08b-bb7f9ee02dd1" executionId="e29e1ba0-ebb3-45cd-aa1a-f60f23a6d509" testListId="8c84fa94-04c1-424b-9868-57a2d4851a1d" />
|
||||
<TestEntry testId="41c1dee7-2d17-4cf3-ae64-fae6fd9f9105" executionId="3181d0c8-88ef-42c2-8375-0be2ff86197d" testListId="8c84fa94-04c1-424b-9868-57a2d4851a1d" />
|
||||
<TestEntry testId="3e8432a2-ff59-c925-c08b-bb7f9ee02dd1" executionId="b7b68f4a-8e66-408f-965b-23f0073b6ee7" testListId="8c84fa94-04c1-424b-9868-57a2d4851a1d" />
|
||||
<TestEntry testId="c38e1acf-6419-5634-5ac6-0099b3891fe8" executionId="79a318be-8f8d-42e4-8d54-58a3a054ef09" testListId="8c84fa94-04c1-424b-9868-57a2d4851a1d" />
|
||||
<TestEntry testId="55ef2114-eb39-77d8-4031-3da68d0dc505" executionId="9a6bc7d8-3abd-4369-aa02-418530a1bf59" testListId="8c84fa94-04c1-424b-9868-57a2d4851a1d" />
|
||||
<TestEntry testId="a171b9bb-97df-a0d8-c112-02ea0ea98607" executionId="30c568c6-c120-48b0-8ebf-6d852b034bd9" testListId="8c84fa94-04c1-424b-9868-57a2d4851a1d" />
|
||||
<TestEntry testId="d3708bd6-b784-b890-48b3-965f4ac35bc9" executionId="623c7fd2-5b76-4a14-b0c8-300678630c3b" testListId="8c84fa94-04c1-424b-9868-57a2d4851a1d" />
|
||||
<TestEntry testId="e4d3ab06-acb8-d3f7-0518-e81c04c0108a" executionId="4cbddbf1-3df5-4098-a6e8-715249d865df" testListId="8c84fa94-04c1-424b-9868-57a2d4851a1d" />
|
||||
<TestEntry testId="eda9288a-92d4-85a5-dd8e-96ed8a58af10" executionId="ef238df8-c951-4e0f-b32b-4bc9162bc031" testListId="8c84fa94-04c1-424b-9868-57a2d4851a1d" />
|
||||
<TestEntry testId="3bd3c92f-b8b2-2f41-9211-951100aa2540" executionId="705f6132-7d4c-48c4-afdc-cadb427a4255" testListId="8c84fa94-04c1-424b-9868-57a2d4851a1d" />
|
||||
<TestEntry testId="0980711c-d788-32eb-19b3-1d302a0e8df5" executionId="cf210795-6f94-400f-afc6-a49baadfd249" testListId="8c84fa94-04c1-424b-9868-57a2d4851a1d" />
|
||||
<TestEntry testId="787d63a6-11d7-2fda-3fad-9d980fa5e70d" executionId="e3d9bb4a-36b1-467f-a851-85bd210301e3" testListId="8c84fa94-04c1-424b-9868-57a2d4851a1d" />
|
||||
</TestEntries>
|
||||
<TestLists>
|
||||
<TestList name="Results Not in a List" id="8c84fa94-04c1-424b-9868-57a2d4851a1d" />
|
||||
<TestList name="All Loaded Results" id="19431567-8539-422a-85d7-44ee4e166bda" />
|
||||
</TestLists>
|
||||
<ResultSummary outcome="Failed">
|
||||
<Counters total="7" executed="6" passed="3" failed="3" error="0" timeout="0" aborted="0" inconclusive="0" passedButRunAborted="0" notRunnable="0" notExecuted="0" disconnected="0" warning="0" completed="0" inProgress="0" pending="0" />
|
||||
<Counters total="11" executed="10" passed="5" failed="5" error="0" timeout="0" aborted="0" inconclusive="0" passedButRunAborted="0" notRunnable="0" notExecuted="0" disconnected="0" warning="0" completed="0" inProgress="0" pending="0" />
|
||||
<Output>
|
||||
<StdOut>[xUnit.net 00:00:00.00] xUnit.net VSTest Adapter v2.4.0 (64-bit .NET Core 3.1.9)
|
||||
<StdOut>[xUnit.net 00:00:00.00] xUnit.net VSTest Adapter v2.4.0 (64-bit .NET Core 3.1.14)
|
||||
[xUnit.net 00:00:00.27] Discovering: DotnetTests.XUnitTests
|
||||
[xUnit.net 00:00:00.30] Discovered: DotnetTests.XUnitTests
|
||||
[xUnit.net 00:00:00.30] Starting: DotnetTests.XUnitTests
|
||||
[xUnit.net 00:00:00.37] System.Exception : Test
|
||||
[xUnit.net 00:00:00.37] Stack Trace:
|
||||
[xUnit.net 00:00:00.37] C:\Users\Michal\Workspace\dorny\test-check\reports\dotnet\DotnetTests.XUnitTests\CalculatorTests.cs(39,0): at DotnetTests.XUnitTests.CalculatorTests.Exception_In_Test()
|
||||
[xUnit.net 00:00:00.48] Assert.Equal() Failure
|
||||
[xUnit.net 00:00:00.48] Expected: 3
|
||||
[xUnit.net 00:00:00.48] Actual: 2
|
||||
[xUnit.net 00:00:00.48] Stack Trace:
|
||||
[xUnit.net 00:00:00.48] C:\Users\Michal\Workspace\dorny\test-check\reports\dotnet\DotnetTests.XUnitTests\CalculatorTests.cs(27,0): at DotnetTests.XUnitTests.CalculatorTests.Failing_Test()
|
||||
[xUnit.net 00:00:00.48] System.DivideByZeroException : Attempted to divide by zero.
|
||||
[xUnit.net 00:00:00.48] Stack Trace:
|
||||
[xUnit.net 00:00:00.48] C:\Users\Michal\Workspace\dorny\test-check\reports\dotnet\DotnetTests.Unit\Calculator.cs(9,0): at DotnetTests.Unit.Calculator.Div(Int32 a, Int32 b)
|
||||
[xUnit.net 00:00:00.48] C:\Users\Michal\Workspace\dorny\test-check\reports\dotnet\DotnetTests.XUnitTests\CalculatorTests.cs(33,0): at DotnetTests.XUnitTests.CalculatorTests.Exception_In_TargetTest()
|
||||
[xUnit.net 00:00:00.48] Skipped test
|
||||
[xUnit.net 00:00:00.49] Finished: DotnetTests.XUnitTests
|
||||
[xUnit.net 00:00:00.32] Discovered: DotnetTests.XUnitTests
|
||||
[xUnit.net 00:00:00.32] Starting: DotnetTests.XUnitTests
|
||||
[xUnit.net 00:00:00.39] System.Exception : Test
|
||||
[xUnit.net 00:00:00.39] Stack Trace:
|
||||
[xUnit.net 00:00:00.39] C:\Users\Michal\Workspace\dorny\test-reporter\reports\dotnet\DotnetTests.XUnitTests\CalculatorTests.cs(39,0): at DotnetTests.XUnitTests.CalculatorTests.Exception_In_Test()
|
||||
[xUnit.net 00:00:00.51] Assert.Equal() Failure
|
||||
[xUnit.net 00:00:00.51] Expected: 3
|
||||
[xUnit.net 00:00:00.51] Actual: 2
|
||||
[xUnit.net 00:00:00.51] Stack Trace:
|
||||
[xUnit.net 00:00:00.51] C:\Users\Michal\Workspace\dorny\test-reporter\reports\dotnet\DotnetTests.XUnitTests\CalculatorTests.cs(27,0): at DotnetTests.XUnitTests.CalculatorTests.Failing_Test()
|
||||
[xUnit.net 00:00:00.51] Assert.True() Failure
|
||||
[xUnit.net 00:00:00.51] Expected: True
|
||||
[xUnit.net 00:00:00.51] Actual: False
|
||||
[xUnit.net 00:00:00.51] Stack Trace:
|
||||
[xUnit.net 00:00:00.51] C:\Users\Michal\Workspace\dorny\test-reporter\reports\dotnet\DotnetTests.XUnitTests\CalculatorTests.cs(67,0): at DotnetTests.XUnitTests.CalculatorTests.Theory_With_Custom_Name(Int32 i)
|
||||
[xUnit.net 00:00:00.51] System.DivideByZeroException : Attempted to divide by zero.
|
||||
[xUnit.net 00:00:00.51] Stack Trace:
|
||||
[xUnit.net 00:00:00.51] C:\Users\Michal\Workspace\dorny\test-reporter\reports\dotnet\DotnetTests.Unit\Calculator.cs(9,0): at DotnetTests.Unit.Calculator.Div(Int32 a, Int32 b)
|
||||
[xUnit.net 00:00:00.51] C:\Users\Michal\Workspace\dorny\test-reporter\reports\dotnet\DotnetTests.XUnitTests\CalculatorTests.cs(33,0): at DotnetTests.XUnitTests.CalculatorTests.Exception_In_TargetTest()
|
||||
[xUnit.net 00:00:00.51] Assert.True() Failure
|
||||
[xUnit.net 00:00:00.51] Expected: True
|
||||
[xUnit.net 00:00:00.51] Actual: False
|
||||
[xUnit.net 00:00:00.51] Stack Trace:
|
||||
[xUnit.net 00:00:00.51] C:\Users\Michal\Workspace\dorny\test-reporter\reports\dotnet\DotnetTests.XUnitTests\CalculatorTests.cs(59,0): at DotnetTests.XUnitTests.CalculatorTests.Is_Even_Number(Int32 i)
|
||||
[xUnit.net 00:00:00.54] Skipped test
|
||||
[xUnit.net 00:00:00.54] Finished: DotnetTests.XUnitTests
|
||||
Test 'DotnetTests.XUnitTests.CalculatorTests.Skipped_Test' was skipped in the test run.
|
||||
</StdOut>
|
||||
</Output>
|
||||
<RunInfos>
|
||||
<RunInfo computerName="DORNY-PC" outcome="Error" timestamp="2020-10-17T21:39:04.1284415+02:00">
|
||||
<Text>[xUnit.net 00:00:00.37] DotnetTests.XUnitTests.CalculatorTests.Exception_In_Test [FAIL]</Text>
|
||||
<RunInfo computerName="DORNY-PC" outcome="Error" timestamp="2021-04-20T08:31:32.8608994+02:00">
|
||||
<Text>[xUnit.net 00:00:00.39] DotnetTests.XUnitTests.CalculatorTests.Exception_In_Test [FAIL]</Text>
|
||||
</RunInfo>
|
||||
<RunInfo computerName="DORNY-PC" outcome="Error" timestamp="2020-10-17T21:39:04.2341547+02:00">
|
||||
<Text>[xUnit.net 00:00:00.48] DotnetTests.XUnitTests.CalculatorTests.Failing_Test [FAIL]</Text>
|
||||
<RunInfo computerName="DORNY-PC" outcome="Error" timestamp="2021-04-20T08:31:32.9743695+02:00">
|
||||
<Text>[xUnit.net 00:00:00.51] DotnetTests.XUnitTests.CalculatorTests.Failing_Test [FAIL]</Text>
|
||||
</RunInfo>
|
||||
<RunInfo computerName="DORNY-PC" outcome="Error" timestamp="2020-10-17T21:39:04.2354218+02:00">
|
||||
<Text>[xUnit.net 00:00:00.48] DotnetTests.XUnitTests.CalculatorTests.Exception_In_TargetTest [FAIL]</Text>
|
||||
<RunInfo computerName="DORNY-PC" outcome="Error" timestamp="2021-04-20T08:31:32.9753175+02:00">
|
||||
<Text>[xUnit.net 00:00:00.51] Should be even number(i: 3) [FAIL]</Text>
|
||||
</RunInfo>
|
||||
<RunInfo computerName="DORNY-PC" outcome="Warning" timestamp="2020-10-17T21:39:04.2388123+02:00">
|
||||
<Text>[xUnit.net 00:00:00.48] DotnetTests.XUnitTests.CalculatorTests.Skipped_Test [SKIP]</Text>
|
||||
<RunInfo computerName="DORNY-PC" outcome="Error" timestamp="2021-04-20T08:31:32.9767605+02:00">
|
||||
<Text>[xUnit.net 00:00:00.51] DotnetTests.XUnitTests.CalculatorTests.Exception_In_TargetTest [FAIL]</Text>
|
||||
</RunInfo>
|
||||
<RunInfo computerName="DORNY-PC" outcome="Error" timestamp="2021-04-20T08:31:32.9843677+02:00">
|
||||
<Text>[xUnit.net 00:00:00.51] DotnetTests.XUnitTests.CalculatorTests.Is_Even_Number(i: 3) [FAIL]</Text>
|
||||
</RunInfo>
|
||||
<RunInfo computerName="DORNY-PC" outcome="Warning" timestamp="2021-04-20T08:31:33.1004401+02:00">
|
||||
<Text>[xUnit.net 00:00:00.54] DotnetTests.XUnitTests.CalculatorTests.Skipped_Test [SKIP]</Text>
|
||||
</RunInfo>
|
||||
</RunInfos>
|
||||
</ResultSummary>
|
||||
</TestRun>
|
||||
</TestRun>
|
||||
60
__tests__/fixtures/dotnet-xunitv3.trx
Normal file
60
__tests__/fixtures/dotnet-xunitv3.trx
Normal file
@@ -0,0 +1,60 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<TestRun id="54e29175-539e-48a3-a634-3a1855a0ed38" name="@Asterix 2025-06-22 14:17:12.022" xmlns="http://microsoft.com/schemas/VisualStudio/TeamTest/2010">
|
||||
<Times creation="2025-06-22T14:17:11.756535Z" queuing="2025-06-22T14:17:11.756535Z" start="2025-06-22T14:17:11.756535Z" finish="2025-06-22T14:17:12.023063Z" />
|
||||
<TestSettings name="default" id="932e6c6f-3e5b-4392-ad65-e04c1ef476b5">
|
||||
<Deployment runDeploymentRoot="_Asterix_2025-06-22_14_17_12.022" />
|
||||
</TestSettings>
|
||||
<Results>
|
||||
<UnitTestResult executionId="37242a1f-ca3e-44b3-8142-71e510480975" testId="f846a1e6-0b68-2ac6-9a66-f417926e3238" testName="DotnetTests.XUnitV3Tests.FixtureTests.Failing_Test" computerName="Asterix" duration="00:00:00.0170545" startTime="2025-06-22T14:17:11.9339840+00:00" endTime="2025-06-22T14:17:11.9750850+00:00" testType="13CDC9D9-DDB5-4fa4-A97D-D965CCFC6D4B" outcome="Failed" testListId="8C84FA94-04C1-424b-9868-57A2D4851A1D" relativeResultsDirectory="37242a1f-ca3e-44b3-8142-71e510480975">
|
||||
<Output>
|
||||
<ErrorInfo>
|
||||
<Message>Assert.Null() Failure: Value is not null
|
||||
Expected: null
|
||||
Actual: Fixture { }</Message>
|
||||
<StackTrace> at DotnetTests.XUnitV3Tests.FixtureTests.Failing_Test() in /_/reports/dotnet/DotnetTests.XUnitV3Tests/FixtureTests.cs:line 25
|
||||
at System.RuntimeMethodHandle.InvokeMethod(Object target, Void** arguments, Signature sig, Boolean isConstructor)
|
||||
at System.Reflection.MethodBaseInvoker.InvokeWithNoArgs(Object obj, BindingFlags invokeAttr)</StackTrace>
|
||||
</ErrorInfo>
|
||||
</Output>
|
||||
</UnitTestResult>
|
||||
<UnitTestResult executionId="592aaafb-4dc0-49dc-b3c7-bcd81218d58a" testId="3ee930dd-8a75-92a0-0d90-373833166db1" testName="DotnetTests.XUnitV3Tests.FixtureTests.Passing_Test" computerName="Asterix" duration="00:00:00.0008786" startTime="2025-06-22T14:17:11.9819890+00:00" endTime="2025-06-22T14:17:11.9833560+00:00" testType="13CDC9D9-DDB5-4fa4-A97D-D965CCFC6D4B" outcome="Passed" testListId="8C84FA94-04C1-424b-9868-57A2D4851A1D" relativeResultsDirectory="592aaafb-4dc0-49dc-b3c7-bcd81218d58a" />
|
||||
<UnitTestResult executionId="19c42d36-f4d7-4046-bcc6-dd9b85c9ca2b" testId="372fb60f-1f5b-a52e-032e-41a7556021e8" testName="[Test Class Cleanup Failure (DotnetTests.XUnitV3Tests.FixtureTests.Passing_Test)]" computerName="Asterix" duration="00:00:00" startTime="2025-06-22T14:17:12.0320280+00:00" endTime="2025-06-22T14:17:12.0320290+00:00" testType="13CDC9D9-DDB5-4fa4-A97D-D965CCFC6D4B" outcome="Failed" testListId="8C84FA94-04C1-424b-9868-57A2D4851A1D" relativeResultsDirectory="19c42d36-f4d7-4046-bcc6-dd9b85c9ca2b" />
|
||||
<UnitTestResult executionId="b7f40170-1e2c-45ce-b5e4-5bf49fd4c360" testId="a69083a1-56b4-3da3-2d7c-66fda374fd8e" testName="[Test Class Cleanup Failure (DotnetTests.XUnitV3Tests.FixtureTests.Failing_Test)]" computerName="Asterix" duration="00:00:00" startTime="2025-06-22T14:17:12.0320420+00:00" endTime="2025-06-22T14:17:12.0320430+00:00" testType="13CDC9D9-DDB5-4fa4-A97D-D965CCFC6D4B" outcome="Failed" testListId="8C84FA94-04C1-424b-9868-57A2D4851A1D" relativeResultsDirectory="b7f40170-1e2c-45ce-b5e4-5bf49fd4c360" />
|
||||
</Results>
|
||||
<TestDefinitions>
|
||||
<UnitTest name="DotnetTests.XUnitV3Tests.FixtureTests.Failing_Test" storage="~/test-reporter/reports/dotnet/dotnettests.xunitv3tests/bin/debug/net8.0/dotnettests.xunitv3tests.dll" id="f846a1e6-0b68-2ac6-9a66-f417926e3238">
|
||||
<Execution id="37242a1f-ca3e-44b3-8142-71e510480975" />
|
||||
<TestMethod codeBase="~/test-reporter/reports/dotnet/DotnetTests.XUnitV3Tests/bin/Debug/net8.0/DotnetTests.XUnitV3Tests.dll" adapterTypeName="executor://30ea7c6e-dd24-4152-a360-1387158cd41d/2.0.3" className="DotnetTests.XUnitV3Tests.FixtureTests" name="DotnetTests.XUnitV3Tests.FixtureTests.Failing_Test" />
|
||||
</UnitTest>
|
||||
<UnitTest name="DotnetTests.XUnitV3Tests.FixtureTests.Passing_Test" storage="~/test-reporter/reports/dotnet/dotnettests.xunitv3tests/bin/debug/net8.0/dotnettests.xunitv3tests.dll" id="3ee930dd-8a75-92a0-0d90-373833166db1">
|
||||
<Execution id="592aaafb-4dc0-49dc-b3c7-bcd81218d58a" />
|
||||
<TestMethod codeBase="~/test-reporter/reports/dotnet/DotnetTests.XUnitV3Tests/bin/Debug/net8.0/DotnetTests.XUnitV3Tests.dll" adapterTypeName="executor://30ea7c6e-dd24-4152-a360-1387158cd41d/2.0.3" className="DotnetTests.XUnitV3Tests.FixtureTests" name="DotnetTests.XUnitV3Tests.FixtureTests.Passing_Test" />
|
||||
</UnitTest>
|
||||
<UnitTest name="[Test Class Cleanup Failure (DotnetTests.XUnitV3Tests.FixtureTests.Passing_Test)]" storage="~/test-reporter/reports/dotnet/dotnettests.xunitv3tests/bin/debug/net8.0/dotnettests.xunitv3tests.dll" id="372fb60f-1f5b-a52e-032e-41a7556021e8">
|
||||
<Execution id="19c42d36-f4d7-4046-bcc6-dd9b85c9ca2b" />
|
||||
<TestMethod codeBase="~/test-reporter/reports/dotnet/DotnetTests.XUnitV3Tests/bin/Debug/net8.0/DotnetTests.XUnitV3Tests.dll" adapterTypeName="executor://30ea7c6e-dd24-4152-a360-1387158cd41d/2.0.3" name="[Test Class Cleanup Failure (DotnetTests.XUnitV3Tests.FixtureTests.Passing_Test)]" />
|
||||
</UnitTest>
|
||||
<UnitTest name="[Test Class Cleanup Failure (DotnetTests.XUnitV3Tests.FixtureTests.Failing_Test)]" storage="~/test-reporter/reports/dotnet/dotnettests.xunitv3tests/bin/debug/net8.0/dotnettests.xunitv3tests.dll" id="a69083a1-56b4-3da3-2d7c-66fda374fd8e">
|
||||
<Execution id="b7f40170-1e2c-45ce-b5e4-5bf49fd4c360" />
|
||||
<TestMethod codeBase="~/test-reporter/reports/dotnet/DotnetTests.XUnitV3Tests/bin/Debug/net8.0/DotnetTests.XUnitV3Tests.dll" adapterTypeName="executor://30ea7c6e-dd24-4152-a360-1387158cd41d/2.0.3" name="[Test Class Cleanup Failure (DotnetTests.XUnitV3Tests.FixtureTests.Failing_Test)]" />
|
||||
</UnitTest>
|
||||
</TestDefinitions>
|
||||
<TestEntries>
|
||||
<TestEntry testId="f846a1e6-0b68-2ac6-9a66-f417926e3238" executionId="37242a1f-ca3e-44b3-8142-71e510480975" testListId="8C84FA94-04C1-424b-9868-57A2D4851A1D" />
|
||||
<TestEntry testId="3ee930dd-8a75-92a0-0d90-373833166db1" executionId="592aaafb-4dc0-49dc-b3c7-bcd81218d58a" testListId="8C84FA94-04C1-424b-9868-57A2D4851A1D" />
|
||||
<TestEntry testId="372fb60f-1f5b-a52e-032e-41a7556021e8" executionId="19c42d36-f4d7-4046-bcc6-dd9b85c9ca2b" testListId="8C84FA94-04C1-424b-9868-57A2D4851A1D" />
|
||||
<TestEntry testId="a69083a1-56b4-3da3-2d7c-66fda374fd8e" executionId="b7f40170-1e2c-45ce-b5e4-5bf49fd4c360" testListId="8C84FA94-04C1-424b-9868-57A2D4851A1D" />
|
||||
</TestEntries>
|
||||
<TestLists>
|
||||
<TestList name="Results Not in a List" id="8C84FA94-04C1-424b-9868-57A2D4851A1D" />
|
||||
<TestList name="All Loaded Results" id="19431567-8539-422a-85d7-44ee4e166bda" />
|
||||
</TestLists>
|
||||
<ResultSummary outcome="Failed">
|
||||
<Counters total="4" executed="4" passed="1" failed="3" error="0" timeout="0" aborted="0" inconclusive="0" passedButRunAborted="0" notRunnable="0" notExecuted="0" disconnected="0" warning="0" completed="0" inProgress="0" pending="0" />
|
||||
<RunInfos>
|
||||
<RunInfo computerName="Asterix" outcome="Error" timestamp="2025-06-22T14:17:12.033401">
|
||||
<Text>Exit code indicates failure: '2'. Please refer to https://aka.ms/testingplatform/exitcodes for more information.</Text>
|
||||
</RunInfo>
|
||||
</RunInfos>
|
||||
</ResultSummary>
|
||||
</TestRun>
|
||||
@@ -1,9 +1,15 @@
|
||||
{"protocolVersion":"0.1.1","runnerVersion":"1.15.4","pid":21320,"type":"start","time":0}
|
||||
{"suite":{"id":0,"platform":"vm","path":"test\\main_test.dart"},"type":"suite","time":0}
|
||||
{"test":{"id":1,"name":"loading test\\main_test.dart","suiteID":0,"groupIDs":[],"metadata":{"skip":false,"skipReason":null},"line":null,"column":null,"url":null},"type":"testStart","time":1}
|
||||
{"suite":{"id":2,"platform":"vm","path":"test\\second_test.dart"},"type":"suite","time":11}
|
||||
{"test":{"id":3,"name":"loading test\\second_test.dart","suiteID":2,"groupIDs":[],"metadata":{"skip":false,"skipReason":null},"line":null,"column":null,"url":null},"type":"testStart","time":11}
|
||||
{"count":2,"type":"allSuites","time":11}
|
||||
{"testID":1,"result":"success","skipped":false,"hidden":true,"type":"testDone","time":4018}
|
||||
{"testID":3,"result":"success","skipped":false,"hidden":true,"type":"testDone","time":4025}
|
||||
{"success":true,"type":"done","time":4029}
|
||||
{"protocolVersion":"0.1.1","runnerVersion":"1.25.3","pid":7103,"type":"start","time":0}
|
||||
{"suite":{"id":0,"platform":"vm","path":"test/second_test.dart"},"type":"suite","time":0}
|
||||
{"test":{"id":1,"name":"loading test/second_test.dart","suiteID":0,"groupIDs":[],"metadata":{"skip":false,"skipReason":null},"line":null,"column":null,"url":null},"type":"testStart","time":0}
|
||||
{"suite":{"id":2,"platform":"vm","path":"test/main_test.dart"},"type":"suite","time":4}
|
||||
{"test":{"id":3,"name":"loading test/main_test.dart","suiteID":2,"groupIDs":[],"metadata":{"skip":false,"skipReason":null},"line":null,"column":null,"url":null},"type":"testStart","time":4}
|
||||
{"count":2,"time":5,"type":"allSuites"}
|
||||
{"testID":1,"result":"success","skipped":false,"hidden":true,"type":"testDone","time":294}
|
||||
{"testID":3,"messageType":"print","message":"Hello from the test","type":"print","time":297}
|
||||
{"testID":3,"result":"success","skipped":false,"hidden":true,"type":"testDone","time":321}
|
||||
{"group":{"id":4,"suiteID":2,"parentID":null,"name":"","metadata":{"skip":false,"skipReason":null},"testCount":0,"line":null,"column":null,"url":null},"type":"group","time":322}
|
||||
{"test":{"id":5,"name":"(setUpAll)","suiteID":2,"groupIDs":[4],"metadata":{"skip":false,"skipReason":null},"line":6,"column":3,"url":"file:///Users/domu/Downloads/test-reporter/reports/dart/test/main_test.dart"},"type":"testStart","time":322}
|
||||
{"testID":5,"result":"success","skipped":false,"hidden":true,"type":"testDone","time":330}
|
||||
{"test":{"id":6,"name":"(tearDownAll)","suiteID":2,"groupIDs":[4],"metadata":{"skip":false,"skipReason":null},"line":7,"column":3,"url":"file:///Users/domu/Downloads/test-reporter/reports/dart/test/main_test.dart"},"type":"testStart","time":330}
|
||||
{"testID":6,"result":"success","skipped":false,"hidden":true,"type":"testDone","time":331}
|
||||
{"success":true,"type":"done","time":333}
|
||||
|
||||
@@ -0,0 +1,22 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<TestRun id="80e4c095-f726-4ab2-9441-416daa162672" name="..." runUser="..." xmlns="http://microsoft.com/schemas/VisualStudio/TeamTest/2010">
|
||||
<Times creation="2021-02-26T10:36:33.7131022+02:00" queuing="2021-02-26T10:36:33.7131029+02:00" start="2021-02-26T10:36:33.3278956+02:00" finish="2021-02-26T10:36:33.7139830+02:00" />
|
||||
<TestSettings name="default" id="863a1d8b-ee3b-45f9-86ee-1869bc4e889f">
|
||||
<Deployment runDeploymentRoot="..." />
|
||||
</TestSettings>
|
||||
<Results />
|
||||
<TestDefinitions />
|
||||
<TestEntries />
|
||||
<TestLists>
|
||||
<TestList name="Results Not in a List" id="8c84fa94-04c1-424b-9868-57a2d4851a1d" />
|
||||
<TestList name="All Loaded Results" id="19431567-8539-422a-85d7-44ee4e166bda" />
|
||||
</TestLists>
|
||||
<ResultSummary outcome="Completed">
|
||||
<Counters total="0" executed="0" passed="0" failed="0" error="0" timeout="0" aborted="0" inconclusive="0" passedButRunAborted="0" notRunnable="0" notExecuted="0" disconnected="0" warning="0" completed="0" inProgress="0" pending="0" />
|
||||
<RunInfos>
|
||||
<RunInfo computerName="..." outcome="Warning" timestamp="2021-02-26T10:36:33.6676104+02:00">
|
||||
<Text>No test is available in (...). Make sure that test discoverer & executors are registered and platform & framework version settings are appropriate and try again.</Text>
|
||||
</RunInfo>
|
||||
</RunInfos>
|
||||
</ResultSummary>
|
||||
</TestRun>
|
||||
5
__tests__/fixtures/empty/jest-junit-empty-testsuite.xml
Normal file
5
__tests__/fixtures/empty/jest-junit-empty-testsuite.xml
Normal file
@@ -0,0 +1,5 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<testsuites name="jest tests" tests="0" failures="0" errors="0" time="11.299">
|
||||
<testsuite name="__tests__\main.test.js" errors="0" failures="0" skipped="0" timestamp="2020-10-27T21:39:41" time="0.486" tests="0">
|
||||
</testsuite>
|
||||
</testsuites>
|
||||
16
__tests__/fixtures/empty/mocha-json.json
Normal file
16
__tests__/fixtures/empty/mocha-json.json
Normal file
@@ -0,0 +1,16 @@
|
||||
{
|
||||
"stats": {
|
||||
"suites": 0,
|
||||
"tests": 0,
|
||||
"passes": 0,
|
||||
"pending": 0,
|
||||
"failures": 0,
|
||||
"start": "2021-03-08T20:01:44.391Z",
|
||||
"end": "2021-03-08T20:01:44.391Z",
|
||||
"duration": 0
|
||||
},
|
||||
"tests": [],
|
||||
"pending": [],
|
||||
"failures": [],
|
||||
"passes": []
|
||||
}
|
||||
2
__tests__/fixtures/empty/phpunit-empty.xml
Normal file
2
__tests__/fixtures/empty/phpunit-empty.xml
Normal file
@@ -0,0 +1,2 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<testsuites/>
|
||||
17
__tests__/fixtures/empty/rspec-json.json
Normal file
17
__tests__/fixtures/empty/rspec-json.json
Normal file
@@ -0,0 +1,17 @@
|
||||
{
|
||||
"version": "3.13.0",
|
||||
"messages": [
|
||||
"No examples found."
|
||||
],
|
||||
"examples": [
|
||||
|
||||
],
|
||||
"summary": {
|
||||
"duration": 0.002514266,
|
||||
"example_count": 0,
|
||||
"failure_count": 0,
|
||||
"pending_count": 0,
|
||||
"errors_outside_of_examples_count": 0
|
||||
},
|
||||
"summary_line": "0 examples, 0 failures"
|
||||
}
|
||||
609
__tests__/fixtures/external/SilentNotes.trx
vendored
Normal file
609
__tests__/fixtures/external/SilentNotes.trx
vendored
Normal file
@@ -0,0 +1,609 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<TestRun id="424d6b43-160d-46b3-a497-44bf6eb5f1d4" name="Michal@DORNY-PC 2021-04-20 21:20:35" runUser="DORNY-PC\Michal" xmlns="http://microsoft.com/schemas/VisualStudio/TeamTest/2010">
|
||||
<Times creation="2021-04-20T21:20:35.5616820+02:00" queuing="2021-04-20T21:20:35.5616829+02:00" start="2021-04-20T21:20:34.6319183+02:00" finish="2021-04-20T21:20:35.8887367+02:00" />
|
||||
<TestSettings name="default" id="9fddc3fc-3d7a-4dc6-8498-145e1dab25b7">
|
||||
<Deployment runDeploymentRoot="Michal_DORNY-PC_2021-04-20_21_20_35" />
|
||||
</TestSettings>
|
||||
<Results>
|
||||
<UnitTestResult executionId="e0f60156-4a28-4d04-8336-040ffe215e8f" testId="a500e09e-b66a-a804-eaae-a237a3b689b9" testName="FetchTokenReturnsNullForDeniedAccess" computerName="DORNY-PC" duration="00:00:00.0010000" startTime="2021-04-20T21:20:35.7679347+02:00" endTime="2021-04-20T21:20:35.7688008+02:00" testType="13cdc9d9-ddb5-4fa4-a97d-d965ccfc6d4b" outcome="Passed" testListId="8c84fa94-04c1-424b-9868-57a2d4851a1d" relativeResultsDirectory="e0f60156-4a28-4d04-8336-040ffe215e8f" />
|
||||
<UnitTestResult executionId="4401f9ea-5a99-4275-a333-18655e9517ce" testId="49ceb249-d1ca-f3dc-41f8-28a41637f4d7" testName="SerializedJsonDoesNotContainPlaintextData" computerName="DORNY-PC" duration="00:00:00.0000001" startTime="2021-04-20T21:20:35.8030865+02:00" endTime="2021-04-20T21:20:35.8032634+02:00" testType="13cdc9d9-ddb5-4fa4-a97d-d965ccfc6d4b" outcome="Passed" testListId="8c84fa94-04c1-424b-9868-57a2d4851a1d" relativeResultsDirectory="4401f9ea-5a99-4275-a333-18655e9517ce" />
|
||||
<UnitTestResult executionId="83d32025-8d5e-4a58-92b3-e797e4ea3bfa" testId="5dab3a75-ff5f-1e46-20cf-bc072154bb33" testName="ReallyDoOpenAuthorizationPageInBrowser" computerName="DORNY-PC" startTime="2021-04-20T21:20:35.4897854+02:00" endTime="2021-04-20T21:20:35.4897938+02:00" testType="13cdc9d9-ddb5-4fa4-a97d-d965ccfc6d4b" outcome="NotExecuted" testListId="8c84fa94-04c1-424b-9868-57a2d4851a1d" relativeResultsDirectory="83d32025-8d5e-4a58-92b3-e797e4ea3bfa">
|
||||
<Output>
|
||||
<StdOut>Opens the authorization page in the system browse, to get a real access-token</StdOut>
|
||||
<ErrorInfo>
|
||||
<Message>Opens the authorization page in the system browse, to get a real access-token</Message>
|
||||
</ErrorInfo>
|
||||
</Output>
|
||||
</UnitTestResult>
|
||||
<UnitTestResult executionId="7c73d2a6-34a5-400d-8163-40375210062f" testId="89dd1b67-c0ca-dcc6-ca42-c4f3660c0208" testName="FileLifecycleWorks" computerName="DORNY-PC" duration="00:00:00.1610000" startTime="2021-04-20T21:20:35.4970636+02:00" endTime="2021-04-20T21:20:35.6579410+02:00" testType="13cdc9d9-ddb5-4fa4-a97d-d965ccfc6d4b" outcome="Passed" testListId="8c84fa94-04c1-424b-9868-57a2d4851a1d" relativeResultsDirectory="7c73d2a6-34a5-400d-8163-40375210062f" />
|
||||
<UnitTestResult executionId="cd601b6c-919f-4585-b5e6-d220a0ba17be" testId="916a4c11-6ebe-26db-3769-b9df2051743c" testName="CorrectlyConvertsStringToSecureString" computerName="DORNY-PC" duration="00:00:00.0000001" startTime="2021-04-20T21:20:35.7732857+02:00" endTime="2021-04-20T21:20:35.7734692+02:00" testType="13cdc9d9-ddb5-4fa4-a97d-d965ccfc6d4b" outcome="Passed" testListId="8c84fa94-04c1-424b-9868-57a2d4851a1d" relativeResultsDirectory="cd601b6c-919f-4585-b5e6-d220a0ba17be" />
|
||||
<UnitTestResult executionId="f33ac19b-8781-4127-a232-7c7a2e6d6c32" testId="034a71d4-f7f9-43e6-fc0a-59a23ef2cd9b" testName="ValidateAcceptsValidCredentials" computerName="DORNY-PC" duration="00:00:00.0030000" startTime="2021-04-20T21:20:35.3807412+02:00" endTime="2021-04-20T21:20:35.3837140+02:00" testType="13cdc9d9-ddb5-4fa4-a97d-d965ccfc6d4b" outcome="Passed" testListId="8c84fa94-04c1-424b-9868-57a2d4851a1d" relativeResultsDirectory="f33ac19b-8781-4127-a232-7c7a2e6d6c32" />
|
||||
<UnitTestResult executionId="ddc1f371-da00-4b39-bc51-e4467d1f519d" testId="f7c94d67-56c9-6418-8a42-ddc79dc57ea2" testName="BuildAuthorizationRequestUrlThrowsWithMissingRedirectUrlForTokenFlow" computerName="DORNY-PC" duration="00:00:00.0000001" startTime="2021-04-20T21:20:35.7494602+02:00" endTime="2021-04-20T21:20:35.7497592+02:00" testType="13cdc9d9-ddb5-4fa4-a97d-d965ccfc6d4b" outcome="Passed" testListId="8c84fa94-04c1-424b-9868-57a2d4851a1d" relativeResultsDirectory="ddc1f371-da00-4b39-bc51-e4467d1f519d" />
|
||||
<UnitTestResult executionId="b4b53ef3-c8be-4bcd-8ec3-84fef1e42440" testId="6d6d9696-e968-4583-999f-f73ff1b5b40e" testName="ParseRealWorldDropboxSuccessResponse" computerName="DORNY-PC" duration="00:00:00.0000001" startTime="2021-04-20T21:20:35.7595223+02:00" endTime="2021-04-20T21:20:35.7597223+02:00" testType="13cdc9d9-ddb5-4fa4-a97d-d965ccfc6d4b" outcome="Passed" testListId="8c84fa94-04c1-424b-9868-57a2d4851a1d" relativeResultsDirectory="b4b53ef3-c8be-4bcd-8ec3-84fef1e42440" />
|
||||
<UnitTestResult executionId="e7b019dd-c6ee-40b6-91d9-c7f4bfb03f55" testId="275ce8fa-d4c1-63f1-9add-641a70fb73e6" testName="BuildAuthorizationRequestUrlUsesAllParameters" computerName="DORNY-PC" duration="00:00:00.0000001" startTime="2021-04-20T21:20:35.7497706+02:00" endTime="2021-04-20T21:20:35.7499131+02:00" testType="13cdc9d9-ddb5-4fa4-a97d-d965ccfc6d4b" outcome="Passed" testListId="8c84fa94-04c1-424b-9868-57a2d4851a1d" relativeResultsDirectory="e7b019dd-c6ee-40b6-91d9-c7f4bfb03f55" />
|
||||
<UnitTestResult executionId="60e6f439-58a9-40ac-b6f1-8120f2f04c87" testId="fbed828f-38a9-0e13-af25-e507fd37c36e" testName="SerializedDatacontractDoesNotContainNullProperties" computerName="DORNY-PC" duration="00:00:00.0000001" startTime="2021-04-20T21:20:35.7935921+02:00" endTime="2021-04-20T21:20:35.7938935+02:00" testType="13cdc9d9-ddb5-4fa4-a97d-d965ccfc6d4b" outcome="Passed" testListId="8c84fa94-04c1-424b-9868-57a2d4851a1d" relativeResultsDirectory="60e6f439-58a9-40ac-b6f1-8120f2f04c87" />
|
||||
<UnitTestResult executionId="705cbcf0-24cb-427d-848e-ed2970b0ab58" testId="cc085a0d-1f67-be85-d187-865a89737f10" testName="CorrectlyConvertsSecureStringToString" computerName="DORNY-PC" duration="00:00:00.0070000" startTime="2021-04-20T21:20:35.3682792+02:00" endTime="2021-04-20T21:20:35.3752099+02:00" testType="13cdc9d9-ddb5-4fa4-a97d-d965ccfc6d4b" outcome="Passed" testListId="8c84fa94-04c1-424b-9868-57a2d4851a1d" relativeResultsDirectory="705cbcf0-24cb-427d-848e-ed2970b0ab58" />
|
||||
<UnitTestResult executionId="a9e342c2-bc62-4b01-835b-842bec9f2d4c" testId="4340b799-0666-32b6-4fdd-1daf8a626bc7" testName="SerializedJsonDoesNotContainNullProperties" computerName="DORNY-PC" duration="00:00:00.0000001" startTime="2021-04-20T21:20:35.8028668+02:00" endTime="2021-04-20T21:20:35.8030750+02:00" testType="13cdc9d9-ddb5-4fa4-a97d-d965ccfc6d4b" outcome="Passed" testListId="8c84fa94-04c1-424b-9868-57a2d4851a1d" relativeResultsDirectory="a9e342c2-bc62-4b01-835b-842bec9f2d4c" />
|
||||
<UnitTestResult executionId="8073954d-cee8-455e-a86d-97e8a4ec614d" testId="75ed4b0d-8eff-6a45-b5e4-0db6070c60bb" testName="SerializedDatacontractCanBeReadBack" computerName="DORNY-PC" duration="00:00:00.0160000" startTime="2021-04-20T21:20:35.7775276+02:00" endTime="2021-04-20T21:20:35.7935720+02:00" testType="13cdc9d9-ddb5-4fa4-a97d-d965ccfc6d4b" outcome="Passed" testListId="8c84fa94-04c1-424b-9868-57a2d4851a1d" relativeResultsDirectory="8073954d-cee8-455e-a86d-97e8a4ec614d" />
|
||||
<UnitTestResult executionId="df1e2af3-79ce-4ddc-87e9-aaee93bb557b" testId="28e75f1f-48b9-972a-3113-38add5d40440" testName="ReallyDoRefreshToken" computerName="DORNY-PC" startTime="2021-04-20T21:20:35.7257934+02:00" endTime="2021-04-20T21:20:35.7257944+02:00" testType="13cdc9d9-ddb5-4fa4-a97d-d965ccfc6d4b" outcome="NotExecuted" testListId="8c84fa94-04c1-424b-9868-57a2d4851a1d" relativeResultsDirectory="df1e2af3-79ce-4ddc-87e9-aaee93bb557b">
|
||||
<Output>
|
||||
<StdOut>Refreshes a real token</StdOut>
|
||||
<ErrorInfo>
|
||||
<Message>Refreshes a real token</Message>
|
||||
</ErrorInfo>
|
||||
</Output>
|
||||
</UnitTestResult>
|
||||
<UnitTestResult executionId="998a6ba8-0502-4c0f-8ca8-f4ee77326d18" testId="e740f944-23a8-ca0e-606c-a36651ed4b4f" testName="ParseStratoWebdavResponseCorrectly" computerName="DORNY-PC" duration="00:00:00.0000001" startTime="2021-04-20T21:20:35.7401823+02:00" endTime="2021-04-20T21:20:35.7405396+02:00" testType="13cdc9d9-ddb5-4fa4-a97d-d965ccfc6d4b" outcome="Passed" testListId="8c84fa94-04c1-424b-9868-57a2d4851a1d" relativeResultsDirectory="998a6ba8-0502-4c0f-8ca8-f4ee77326d18" />
|
||||
<UnitTestResult executionId="ea83c2aa-3b60-4ddc-bc14-f7e8c0f4cc2a" testId="767acdfc-0e73-c887-803e-31c8aaa97dde" testName="SerializedXmlDoesNotContainNullProperties" computerName="DORNY-PC" duration="00:00:00.0000001" startTime="2021-04-20T21:20:35.8188264+02:00" endTime="2021-04-20T21:20:35.8191161+02:00" testType="13cdc9d9-ddb5-4fa4-a97d-d965ccfc6d4b" outcome="Passed" testListId="8c84fa94-04c1-424b-9868-57a2d4851a1d" relativeResultsDirectory="ea83c2aa-3b60-4ddc-bc14-f7e8c0f4cc2a" />
|
||||
<UnitTestResult executionId="99ffb4ca-843c-48e2-ba37-90424746c53f" testId="ca777d22-3b0f-e952-bd8a-c5660245a81f" testName="ThrowsWithInvalidUrl" computerName="DORNY-PC" startTime="2021-04-20T21:20:35.6633657+02:00" endTime="2021-04-20T21:20:35.6633670+02:00" testType="13cdc9d9-ddb5-4fa4-a97d-d965ccfc6d4b" outcome="NotExecuted" testListId="8c84fa94-04c1-424b-9868-57a2d4851a1d" relativeResultsDirectory="99ffb4ca-843c-48e2-ba37-90424746c53f">
|
||||
<Output>
|
||||
<StdOut>Too many consecutive fails seems to block an FTP server.</StdOut>
|
||||
<ErrorInfo>
|
||||
<Message>Too many consecutive fails seems to block an FTP server.</Message>
|
||||
</ErrorInfo>
|
||||
</Output>
|
||||
</UnitTestResult>
|
||||
<UnitTestResult executionId="8a597631-5dd4-4119-a2e8-c86478191d1e" testId="fa59d18c-2c0d-3f7a-7b89-8b05c8530c98" testName="NeedsRefreshReturnsFalseIfNotExpired" computerName="DORNY-PC" duration="00:00:00.0000001" startTime="2021-04-20T21:20:35.7426491+02:00" endTime="2021-04-20T21:20:35.7427983+02:00" testType="13cdc9d9-ddb5-4fa4-a97d-d965ccfc6d4b" outcome="Passed" testListId="8c84fa94-04c1-424b-9868-57a2d4851a1d" relativeResultsDirectory="8a597631-5dd4-4119-a2e8-c86478191d1e" />
|
||||
<UnitTestResult executionId="502e3c21-4407-4b5a-85ff-ed1eb355da72" testId="61b1c53a-6b35-a0bd-cf9f-996f45b4c761" testName="ThrowsWithInvalidUsername" computerName="DORNY-PC" duration="00:00:00.0000001" startTime="2021-04-20T21:20:35.7411291+02:00" endTime="2021-04-20T21:20:35.7415912+02:00" testType="13cdc9d9-ddb5-4fa4-a97d-d965ccfc6d4b" outcome="Passed" testListId="8c84fa94-04c1-424b-9868-57a2d4851a1d" relativeResultsDirectory="502e3c21-4407-4b5a-85ff-ed1eb355da72" />
|
||||
<UnitTestResult executionId="1804b7c8-7729-426c-91d9-691ce82a1d7a" testId="736ef283-7bdf-6b3e-0caf-6c21f948cdc6" testName="ThrowsWithHttpInsteadOfFtp" computerName="DORNY-PC" duration="00:00:00.0040000" startTime="2021-04-20T21:20:35.6594895+02:00" endTime="2021-04-20T21:20:35.6633287+02:00" testType="13cdc9d9-ddb5-4fa4-a97d-d965ccfc6d4b" outcome="Passed" testListId="8c84fa94-04c1-424b-9868-57a2d4851a1d" relativeResultsDirectory="1804b7c8-7729-426c-91d9-691ce82a1d7a" />
|
||||
<UnitTestResult executionId="6234ffeb-0f16-4775-9eb0-759232f07cb4" testId="49a69aa8-9346-0600-d464-81784b9e612b" testName="SerializedXmlDoesNotContainPlaintextData" computerName="DORNY-PC" duration="00:00:00.0000001" startTime="2021-04-20T21:20:35.8191301+02:00" endTime="2021-04-20T21:20:35.8193578+02:00" testType="13cdc9d9-ddb5-4fa4-a97d-d965ccfc6d4b" outcome="Passed" testListId="8c84fa94-04c1-424b-9868-57a2d4851a1d" relativeResultsDirectory="6234ffeb-0f16-4775-9eb0-759232f07cb4" />
|
||||
<UnitTestResult executionId="a56e0451-e540-43ee-b30c-1948a059cbe7" testId="c04d2194-9d0c-6f49-84c9-4d2691f2d076" testName="ThrowsWithInvalidPath" computerName="DORNY-PC" duration="00:00:00.0010000" startTime="2021-04-20T21:20:35.7405510+02:00" endTime="2021-04-20T21:20:35.7411167+02:00" testType="13cdc9d9-ddb5-4fa4-a97d-d965ccfc6d4b" outcome="Passed" testListId="8c84fa94-04c1-424b-9868-57a2d4851a1d" relativeResultsDirectory="a56e0451-e540-43ee-b30c-1948a059cbe7" />
|
||||
<UnitTestResult executionId="0e32eb27-9a2c-497d-8d96-4852e04f9247" testId="50701c3a-d1b9-0423-26e6-4be52cf1d5f0" testName="BuildAuthorizationRequestUrlLeavesOutOptionalParameters" computerName="DORNY-PC" duration="00:00:00.0000001" startTime="2021-04-20T21:20:35.7492579+02:00" endTime="2021-04-20T21:20:35.7494479+02:00" testType="13cdc9d9-ddb5-4fa4-a97d-d965ccfc6d4b" outcome="Passed" testListId="8c84fa94-04c1-424b-9868-57a2d4851a1d" relativeResultsDirectory="0e32eb27-9a2c-497d-8d96-4852e04f9247" />
|
||||
<UnitTestResult executionId="208fc10c-948d-4641-b459-a3249b341dcb" testId="ebe21dff-4309-2b2e-75d7-dd55a44ce033" testName="SanitizeCredentials_ChangesInvalidPrefix" computerName="DORNY-PC" duration="00:00:00.0000001" startTime="2021-04-20T21:20:35.6579581+02:00" endTime="2021-04-20T21:20:35.6582444+02:00" testType="13cdc9d9-ddb5-4fa4-a97d-d965ccfc6d4b" outcome="Passed" testListId="8c84fa94-04c1-424b-9868-57a2d4851a1d" relativeResultsDirectory="208fc10c-948d-4641-b459-a3249b341dcb" />
|
||||
<UnitTestResult executionId="7660f5b8-b4fa-4388-9118-e136c6490dd8" testId="4af5858f-3f1a-a886-5596-87475d64aeb3" testName="CorrectlyConvertsUnicodeBytesToSecureString" computerName="DORNY-PC" duration="00:00:00.0000001" startTime="2021-04-20T21:20:35.7734767+02:00" endTime="2021-04-20T21:20:35.7738713+02:00" testType="13cdc9d9-ddb5-4fa4-a97d-d965ccfc6d4b" outcome="Passed" testListId="8c84fa94-04c1-424b-9868-57a2d4851a1d" relativeResultsDirectory="7660f5b8-b4fa-4388-9118-e136c6490dd8" />
|
||||
<UnitTestResult executionId="f48f72ef-ec73-4839-b314-7d22a3cfec69" testId="537e4579-87e2-7283-ca3f-eb8ddb93ae39" testName="NeedsRefreshReturnsTrueIfNoExpirationDate" computerName="DORNY-PC" duration="00:00:00.0000001" startTime="2021-04-20T21:20:35.7429408+02:00" endTime="2021-04-20T21:20:35.7430304+02:00" testType="13cdc9d9-ddb5-4fa4-a97d-d965ccfc6d4b" outcome="Passed" testListId="8c84fa94-04c1-424b-9868-57a2d4851a1d" relativeResultsDirectory="f48f72ef-ec73-4839-b314-7d22a3cfec69" />
|
||||
<UnitTestResult executionId="0a807015-4876-4110-888e-ba37dfcce38a" testId="89e1d4aa-9217-7c34-fc4d-99ef9efe7a7d" testName="ParseRealWorldDropboxRejectResponse" computerName="DORNY-PC" duration="00:00:00.0090000" startTime="2021-04-20T21:20:35.7506657+02:00" endTime="2021-04-20T21:20:35.7595015+02:00" testType="13cdc9d9-ddb5-4fa4-a97d-d965ccfc6d4b" outcome="Passed" testListId="8c84fa94-04c1-424b-9868-57a2d4851a1d" relativeResultsDirectory="0a807015-4876-4110-888e-ba37dfcce38a" />
|
||||
<UnitTestResult executionId="426d15ea-cd3e-4e87-8e2a-14502afbd98f" testId="e22320ba-05cc-579d-8c7d-c693d9b6406e" testName="SerializedJsonCanBeReadBack" computerName="DORNY-PC" duration="00:00:00.0070000" startTime="2021-04-20T21:20:35.7955984+02:00" endTime="2021-04-20T21:20:35.8028478+02:00" testType="13cdc9d9-ddb5-4fa4-a97d-d965ccfc6d4b" outcome="Passed" testListId="8c84fa94-04c1-424b-9868-57a2d4851a1d" relativeResultsDirectory="426d15ea-cd3e-4e87-8e2a-14502afbd98f" />
|
||||
<UnitTestResult executionId="093b7fc9-4477-4bcf-9443-6cc760333b4a" testId="d941f923-cd04-ee0a-427c-b81e14aafa3d" testName="ChoosesCorrectUrlForGmxNetEmail" computerName="DORNY-PC" duration="00:00:00.0010000" startTime="2021-04-20T21:20:35.6694256+02:00" endTime="2021-04-20T21:20:35.6703787+02:00" testType="13cdc9d9-ddb5-4fa4-a97d-d965ccfc6d4b" outcome="Passed" testListId="8c84fa94-04c1-424b-9868-57a2d4851a1d" relativeResultsDirectory="093b7fc9-4477-4bcf-9443-6cc760333b4a" />
|
||||
<UnitTestResult executionId="06a2ec7f-dc87-4ee9-8394-fd650312a2ab" testId="5fa805b8-ec79-3c7c-8e87-3db6dc58f83e" testName="ThrowsAccessDeniedExceptionWithInvalidToken" computerName="DORNY-PC" duration="00:00:00.0060000" startTime="2021-04-20T21:20:35.4898039+02:00" endTime="2021-04-20T21:20:35.4961132+02:00" testType="13cdc9d9-ddb5-4fa4-a97d-d965ccfc6d4b" outcome="Passed" testListId="8c84fa94-04c1-424b-9868-57a2d4851a1d" relativeResultsDirectory="06a2ec7f-dc87-4ee9-8394-fd650312a2ab" />
|
||||
<UnitTestResult executionId="01ecb439-d050-4ac9-95c9-a7378091bcc5" testId="9da3226a-a96e-91f6-c5b6-b3102b5b332a" testName="SerializedDatacontractDoesNotContainPlaintextData" computerName="DORNY-PC" duration="00:00:00.0020000" startTime="2021-04-20T21:20:35.7939062+02:00" endTime="2021-04-20T21:20:35.7955862+02:00" testType="13cdc9d9-ddb5-4fa4-a97d-d965ccfc6d4b" outcome="Passed" testListId="8c84fa94-04c1-424b-9868-57a2d4851a1d" relativeResultsDirectory="01ecb439-d050-4ac9-95c9-a7378091bcc5" />
|
||||
<UnitTestResult executionId="5e0c0e75-9fc9-40ce-ba0a-9c2a0887bdac" testId="a4f5c6bf-c950-cfa4-1f50-3ce62d833293" testName="RefreshTokenCanInterpretGoogleResponse" computerName="DORNY-PC" duration="00:00:00.0030000" startTime="2021-04-20T21:20:35.7696326+02:00" endTime="2021-04-20T21:20:35.7722741+02:00" testType="13cdc9d9-ddb5-4fa4-a97d-d965ccfc6d4b" outcome="Passed" testListId="8c84fa94-04c1-424b-9868-57a2d4851a1d" relativeResultsDirectory="5e0c0e75-9fc9-40ce-ba0a-9c2a0887bdac" />
|
||||
<UnitTestResult executionId="14edf9a2-4d91-4d49-bbee-0400d51f8950" testId="819198e9-75c1-9681-32e4-669dfa258e8a" testName="ParseGmxWebdavResponseCorrectly" computerName="DORNY-PC" duration="00:00:00.0010000" startTime="2021-04-20T21:20:35.7396472+02:00" endTime="2021-04-20T21:20:35.7401701+02:00" testType="13cdc9d9-ddb5-4fa4-a97d-d965ccfc6d4b" outcome="Passed" testListId="8c84fa94-04c1-424b-9868-57a2d4851a1d" relativeResultsDirectory="14edf9a2-4d91-4d49-bbee-0400d51f8950" />
|
||||
<UnitTestResult executionId="52fca9fd-4e45-4f44-9857-f267268b0924" testId="a436d607-b2be-f301-d56f-50716e7b321a" testName="CorrectlyConvertsUtf8BytesToSecureString" computerName="DORNY-PC" duration="00:00:00.0000001" startTime="2021-04-20T21:20:35.7738825+02:00" endTime="2021-04-20T21:20:35.7741056+02:00" testType="13cdc9d9-ddb5-4fa4-a97d-d965ccfc6d4b" outcome="Passed" testListId="8c84fa94-04c1-424b-9868-57a2d4851a1d" relativeResultsDirectory="52fca9fd-4e45-4f44-9857-f267268b0924" />
|
||||
<UnitTestResult executionId="aa3eef6e-4555-49bd-a1fa-ef6f663a5d22" testId="64d76ddb-a88f-9c22-6ed0-af3ecb98ffb9" testName="CorrectlyConvertsStringToSecureString" computerName="DORNY-PC" duration="00:00:00.0060000" startTime="2021-04-20T21:20:35.3752233+02:00" endTime="2021-04-20T21:20:35.3807261+02:00" testType="13cdc9d9-ddb5-4fa4-a97d-d965ccfc6d4b" outcome="Passed" testListId="8c84fa94-04c1-424b-9868-57a2d4851a1d" relativeResultsDirectory="aa3eef6e-4555-49bd-a1fa-ef6f663a5d22" />
|
||||
<UnitTestResult executionId="cd51e1e5-acf8-4a63-a556-0dfd4d99b491" testId="c6bece37-31ea-7f18-10f5-6b96a09f4154" testName="AreEqualWorksWithSameContent" computerName="DORNY-PC" duration="00:00:00.0010000" startTime="2021-04-20T21:20:35.3670949+02:00" endTime="2021-04-20T21:20:35.3681934+02:00" testType="13cdc9d9-ddb5-4fa4-a97d-d965ccfc6d4b" outcome="Passed" testListId="8c84fa94-04c1-424b-9868-57a2d4851a1d" relativeResultsDirectory="cd51e1e5-acf8-4a63-a556-0dfd4d99b491" />
|
||||
<UnitTestResult executionId="fa2b22e8-c121-4f97-8849-4cbe45734f9f" testId="72ed0c35-21ea-7829-893f-73c9214b4f4a" testName="CorrectlyConvertsSecureStringToString" computerName="DORNY-PC" duration="00:00:00.0000001" startTime="2021-04-20T21:20:35.7726187+02:00" endTime="2021-04-20T21:20:35.7727590+02:00" testType="13cdc9d9-ddb5-4fa4-a97d-d965ccfc6d4b" outcome="Passed" testListId="8c84fa94-04c1-424b-9868-57a2d4851a1d" relativeResultsDirectory="fa2b22e8-c121-4f97-8849-4cbe45734f9f" />
|
||||
<UnitTestResult executionId="0c9508da-1207-4eb3-891c-e66e5e768788" testId="ad03a66d-a9e8-9ade-31df-92fa6cac714b" testName="ParsesNullErrorCodeCorrectly" computerName="DORNY-PC" duration="00:00:00.0000001" startTime="2021-04-20T21:20:35.7472239+02:00" endTime="2021-04-20T21:20:35.7473437+02:00" testType="13cdc9d9-ddb5-4fa4-a97d-d965ccfc6d4b" outcome="Passed" testListId="8c84fa94-04c1-424b-9868-57a2d4851a1d" relativeResultsDirectory="0c9508da-1207-4eb3-891c-e66e5e768788" />
|
||||
<UnitTestResult executionId="1c925dd1-edfa-46f1-8b9b-d9ce8cbf2635" testId="e9788947-b431-c470-eb25-13f39858c423" testName="ChoosesCorrectUrlForGmxComEmail" computerName="DORNY-PC" duration="00:00:00.0060000" startTime="2021-04-20T21:20:35.6634852+02:00" endTime="2021-04-20T21:20:35.6694047+02:00" testType="13cdc9d9-ddb5-4fa4-a97d-d965ccfc6d4b" outcome="Passed" testListId="8c84fa94-04c1-424b-9868-57a2d4851a1d" relativeResultsDirectory="1c925dd1-edfa-46f1-8b9b-d9ce8cbf2635" />
|
||||
<UnitTestResult executionId="80c55db9-4d42-4fd2-a48c-22ad4cd39105" testId="b251efa4-be1f-5ed7-99ba-5339059780ec" testName="FileLifecycleWorks" computerName="DORNY-PC" duration="00:00:00.0140000" startTime="2021-04-20T21:20:35.7259035+02:00" endTime="2021-04-20T21:20:35.7396295+02:00" testType="13cdc9d9-ddb5-4fa4-a97d-d965ccfc6d4b" outcome="Passed" testListId="8c84fa94-04c1-424b-9868-57a2d4851a1d" relativeResultsDirectory="80c55db9-4d42-4fd2-a48c-22ad4cd39105" />
|
||||
<UnitTestResult executionId="1624ee85-3987-47af-9822-074bcbca9106" testId="22de815b-16af-03c5-d819-7c8851c1da3c" testName="SetExpiryDateBySecondsWorksWithNull" computerName="DORNY-PC" duration="00:00:00.0000001" startTime="2021-04-20T21:20:35.7434736+02:00" endTime="2021-04-20T21:20:35.7435860+02:00" testType="13cdc9d9-ddb5-4fa4-a97d-d965ccfc6d4b" outcome="Passed" testListId="8c84fa94-04c1-424b-9868-57a2d4851a1d" relativeResultsDirectory="1624ee85-3987-47af-9822-074bcbca9106" />
|
||||
<UnitTestResult executionId="ed88606c-3b41-49bc-ae3f-f226d9464261" testId="c262190d-9c9e-6be3-5e5d-634c12813410" testName="ValidateRejectsInvalidCredentials" computerName="DORNY-PC" duration="00:00:00.0060000" startTime="2021-04-20T21:20:35.3837274+02:00" endTime="2021-04-20T21:20:35.3894951+02:00" testType="13cdc9d9-ddb5-4fa4-a97d-d965ccfc6d4b" outcome="Passed" testListId="8c84fa94-04c1-424b-9868-57a2d4851a1d" relativeResultsDirectory="ed88606c-3b41-49bc-ae3f-f226d9464261" />
|
||||
<UnitTestResult executionId="414673ca-5d78-4202-842b-7f13e7b40f2b" testId="951f28a9-26ae-8567-a07e-eef0e1def226" testName="EncryptBeforeSerializationProtectsAllNecessaryProperties" computerName="DORNY-PC" duration="00:00:00.0000001" startTime="2021-04-20T21:20:35.7768521+02:00" endTime="2021-04-20T21:20:35.7773429+02:00" testType="13cdc9d9-ddb5-4fa4-a97d-d965ccfc6d4b" outcome="Passed" testListId="8c84fa94-04c1-424b-9868-57a2d4851a1d" relativeResultsDirectory="414673ca-5d78-4202-842b-7f13e7b40f2b" />
|
||||
<UnitTestResult executionId="a1f2867a-47fb-49db-901b-7114af3845bd" testId="f43fb36c-bb2f-88d6-fd89-bda7c22b6c91" testName="DecryptAfterDesrializationRespectsNullProperties" computerName="DORNY-PC" duration="00:00:00.0000001" startTime="2021-04-20T21:20:35.7765941+02:00" endTime="2021-04-20T21:20:35.7768387+02:00" testType="13cdc9d9-ddb5-4fa4-a97d-d965ccfc6d4b" outcome="Passed" testListId="8c84fa94-04c1-424b-9868-57a2d4851a1d" relativeResultsDirectory="a1f2867a-47fb-49db-901b-7114af3845bd" />
|
||||
<UnitTestResult executionId="30222c71-5fd6-48d2-ac28-fcd942c4ed39" testId="2281e288-4c7c-bbf6-5b39-72098edf13cc" testName="ReallyDoFetchToken" computerName="DORNY-PC" startTime="2021-04-20T21:20:35.4892590+02:00" endTime="2021-04-20T21:20:35.4897152+02:00" testType="13cdc9d9-ddb5-4fa4-a97d-d965ccfc6d4b" outcome="NotExecuted" testListId="8c84fa94-04c1-424b-9868-57a2d4851a1d" relativeResultsDirectory="30222c71-5fd6-48d2-ac28-fcd942c4ed39">
|
||||
<Output>
|
||||
<StdOut>Gets a real access-token</StdOut>
|
||||
<ErrorInfo>
|
||||
<Message>Gets a real access-token</Message>
|
||||
</ErrorInfo>
|
||||
</Output>
|
||||
</UnitTestResult>
|
||||
<UnitTestResult executionId="ed9923ba-9af6-4558-b34e-f49eb0456eff" testId="13e39882-2195-72c3-053f-9cff2ec1d67d" testName="ReallyDoOpenAuthorizationPageInBrowser" computerName="DORNY-PC" startTime="2021-04-20T21:20:35.7257885+02:00" endTime="2021-04-20T21:20:35.7257895+02:00" testType="13cdc9d9-ddb5-4fa4-a97d-d965ccfc6d4b" outcome="NotExecuted" testListId="8c84fa94-04c1-424b-9868-57a2d4851a1d" relativeResultsDirectory="ed9923ba-9af6-4558-b34e-f49eb0456eff">
|
||||
<Output>
|
||||
<StdOut>Opens the authorization page in the system browse, to get a real authorization-code</StdOut>
|
||||
<ErrorInfo>
|
||||
<Message>Opens the authorization page in the system browse, to get a real authorization-code</Message>
|
||||
</ErrorInfo>
|
||||
</Output>
|
||||
</UnitTestResult>
|
||||
<UnitTestResult executionId="0d72415d-fdfd-4cc2-b812-74abc7818f4e" testId="30bd1939-4032-847c-f269-bb1757915f16" testName="DecryptAfterDesrializationCanReadAllPropertiesBack" computerName="DORNY-PC" duration="00:00:00.0020000" startTime="2021-04-20T21:20:35.7742296+02:00" endTime="2021-04-20T21:20:35.7765786+02:00" testType="13cdc9d9-ddb5-4fa4-a97d-d965ccfc6d4b" outcome="Passed" testListId="8c84fa94-04c1-424b-9868-57a2d4851a1d" relativeResultsDirectory="0d72415d-fdfd-4cc2-b812-74abc7818f4e" />
|
||||
<UnitTestResult executionId="5fbd98cc-68bb-4536-8a46-43b979e213a6" testId="432b7e9a-53e9-d7c7-531a-b22f10d8a0f5" testName="SecureSslConnectionWorks" computerName="DORNY-PC" duration="00:00:00.0010000" startTime="2021-04-20T21:20:35.6582561+02:00" endTime="2021-04-20T21:20:35.6594767+02:00" testType="13cdc9d9-ddb5-4fa4-a97d-d965ccfc6d4b" outcome="Passed" testListId="8c84fa94-04c1-424b-9868-57a2d4851a1d" relativeResultsDirectory="5fbd98cc-68bb-4536-8a46-43b979e213a6" />
|
||||
<UnitTestResult executionId="29177f57-4100-4d14-9def-92aee48433ab" testId="ebbd2ea6-e642-f74f-abc0-f79e1e19896c" testName="NeedsRefreshReturnsFalseForTokenFlow" computerName="DORNY-PC" duration="00:00:00.0000001" startTime="2021-04-20T21:20:35.7423452+02:00" endTime="2021-04-20T21:20:35.7426379+02:00" testType="13cdc9d9-ddb5-4fa4-a97d-d965ccfc6d4b" outcome="Passed" testListId="8c84fa94-04c1-424b-9868-57a2d4851a1d" relativeResultsDirectory="29177f57-4100-4d14-9def-92aee48433ab" />
|
||||
<UnitTestResult executionId="0d4f644d-4bfc-49e5-9983-56d071104b86" testId="3640390a-9ea3-e873-ecaf-b1f0acce39dc" testName="FetchTokenCanInterpretGoogleResponse" computerName="DORNY-PC" duration="00:00:00.0070000" startTime="2021-04-20T21:20:35.7608329+02:00" endTime="2021-04-20T21:20:35.7679172+02:00" testType="13cdc9d9-ddb5-4fa4-a97d-d965ccfc6d4b" outcome="Passed" testListId="8c84fa94-04c1-424b-9868-57a2d4851a1d" relativeResultsDirectory="0d4f644d-4bfc-49e5-9983-56d071104b86" />
|
||||
<UnitTestResult executionId="6f544caa-1014-485e-95b2-60c343c818cb" testId="de4ced25-0268-f393-cea0-bb04d4c5a29e" testName="NeedsRefreshReturnsTrueIfExpired" computerName="DORNY-PC" duration="00:00:00.0000001" startTime="2021-04-20T21:20:35.7428060+02:00" endTime="2021-04-20T21:20:35.7429335+02:00" testType="13cdc9d9-ddb5-4fa4-a97d-d965ccfc6d4b" outcome="Passed" testListId="8c84fa94-04c1-424b-9868-57a2d4851a1d" relativeResultsDirectory="6f544caa-1014-485e-95b2-60c343c818cb" />
|
||||
<UnitTestResult executionId="4c6f6322-a4c6-4738-b068-1baf9c286a03" testId="e684ae1a-ebd6-8708-4f88-d018712c6d26" testName="ParseRealWorldGoogleSuccessResponse" computerName="DORNY-PC" duration="00:00:00.0000001" startTime="2021-04-20T21:20:35.7599219+02:00" endTime="2021-04-20T21:20:35.7600718+02:00" testType="13cdc9d9-ddb5-4fa4-a97d-d965ccfc6d4b" outcome="Passed" testListId="8c84fa94-04c1-424b-9868-57a2d4851a1d" relativeResultsDirectory="4c6f6322-a4c6-4738-b068-1baf9c286a03" />
|
||||
<UnitTestResult executionId="4536485e-ee25-4d61-9353-14a984535b8e" testId="3fa575d3-8c64-4e79-fa65-acc9170b3c5a" testName="FileLifecycleWorks" computerName="DORNY-PC" duration="00:00:00.0400000" startTime="2021-04-20T21:20:35.6705081+02:00" endTime="2021-04-20T21:20:35.7105603+02:00" testType="13cdc9d9-ddb5-4fa4-a97d-d965ccfc6d4b" outcome="Passed" testListId="8c84fa94-04c1-424b-9868-57a2d4851a1d" relativeResultsDirectory="4536485e-ee25-4d61-9353-14a984535b8e" />
|
||||
<UnitTestResult executionId="5c34792d-1eb8-4798-b9f5-a37a5601d982" testId="5d03904b-0ce2-14e9-560e-6097c6faa283" testName="SetExpiryDateBySecondsWorks" computerName="DORNY-PC" duration="00:00:00.0000001" startTime="2021-04-20T21:20:35.7430373+02:00" endTime="2021-04-20T21:20:35.7434618+02:00" testType="13cdc9d9-ddb5-4fa4-a97d-d965ccfc6d4b" outcome="Passed" testListId="8c84fa94-04c1-424b-9868-57a2d4851a1d" relativeResultsDirectory="5c34792d-1eb8-4798-b9f5-a37a5601d982" />
|
||||
<UnitTestResult executionId="b2c31d72-0f6f-4fd3-aadf-519c526ba627" testId="be9e3070-8b2d-4cc8-2595-fb57d16c6cdd" testName="SetExpiryDateBySecondsWorksWithVeryShortPeriod" computerName="DORNY-PC" duration="00:00:00.0000001" startTime="2021-04-20T21:20:35.7435932+02:00" endTime="2021-04-20T21:20:35.7438176+02:00" testType="13cdc9d9-ddb5-4fa4-a97d-d965ccfc6d4b" outcome="Passed" testListId="8c84fa94-04c1-424b-9868-57a2d4851a1d" relativeResultsDirectory="b2c31d72-0f6f-4fd3-aadf-519c526ba627" />
|
||||
<UnitTestResult executionId="0b40b822-b7ff-400e-8c5b-26717502ad01" testId="176fe880-e16d-469b-88c8-2560bc54254b" testName="ReallyDoFetchToken" computerName="DORNY-PC" startTime="2021-04-20T21:20:35.7105789+02:00" endTime="2021-04-20T21:20:35.7105821+02:00" testType="13cdc9d9-ddb5-4fa4-a97d-d965ccfc6d4b" outcome="NotExecuted" testListId="8c84fa94-04c1-424b-9868-57a2d4851a1d" relativeResultsDirectory="0b40b822-b7ff-400e-8c5b-26717502ad01">
|
||||
<Output>
|
||||
<StdOut>Gets a real access-token</StdOut>
|
||||
<ErrorInfo>
|
||||
<Message>Gets a real access-token</Message>
|
||||
</ErrorInfo>
|
||||
</Output>
|
||||
</UnitTestResult>
|
||||
<UnitTestResult executionId="0e832195-44c2-41d5-931b-fa2dc4d4655f" testId="11d38d36-4090-e9ae-0dfe-52c8ffa930a6" testName="FileLifecycleWorks" computerName="DORNY-PC" duration="00:00:00.0150000" startTime="2021-04-20T21:20:35.7108717+02:00" endTime="2021-04-20T21:20:35.7257614+02:00" testType="13cdc9d9-ddb5-4fa4-a97d-d965ccfc6d4b" outcome="Passed" testListId="8c84fa94-04c1-424b-9868-57a2d4851a1d" relativeResultsDirectory="0e832195-44c2-41d5-931b-fa2dc4d4655f" />
|
||||
<UnitTestResult executionId="ca75b323-cd43-4a26-9e6f-fa3650cc9eca" testId="e3bf520c-cf79-f90b-dc21-9c25e58a369d" testName="ParsesAllErrorCodesCorrectly" computerName="DORNY-PC" duration="00:00:00.0030000" startTime="2021-04-20T21:20:35.7439327+02:00" endTime="2021-04-20T21:20:35.7472036+02:00" testType="13cdc9d9-ddb5-4fa4-a97d-d965ccfc6d4b" outcome="Passed" testListId="8c84fa94-04c1-424b-9868-57a2d4851a1d" relativeResultsDirectory="ca75b323-cd43-4a26-9e6f-fa3650cc9eca" />
|
||||
<UnitTestResult executionId="eeeeda37-81c3-4432-93c3-6197cc86aec4" testId="ce42ac62-8706-8922-cf93-ac01f045e42d" testName="ReallyDoFetchToken" computerName="DORNY-PC" startTime="2021-04-20T21:20:35.7257805+02:00" endTime="2021-04-20T21:20:35.7257838+02:00" testType="13cdc9d9-ddb5-4fa4-a97d-d965ccfc6d4b" outcome="NotExecuted" testListId="8c84fa94-04c1-424b-9868-57a2d4851a1d" relativeResultsDirectory="eeeeda37-81c3-4432-93c3-6197cc86aec4">
|
||||
<Output>
|
||||
<StdOut>Gets a real access-token</StdOut>
|
||||
<ErrorInfo>
|
||||
<Message>Gets a real access-token</Message>
|
||||
</ErrorInfo>
|
||||
</Output>
|
||||
</UnitTestResult>
|
||||
<UnitTestResult executionId="a036e7ee-f4ac-442d-827c-9c1103d6fd35" testId="da7235ad-2f42-43de-0593-6a35cf28a618" testName="ReallyDoRefreshToken" computerName="DORNY-PC" startTime="2021-04-20T21:20:35.7106574+02:00" endTime="2021-04-20T21:20:35.7107168+02:00" testType="13cdc9d9-ddb5-4fa4-a97d-d965ccfc6d4b" outcome="NotExecuted" testListId="8c84fa94-04c1-424b-9868-57a2d4851a1d" relativeResultsDirectory="a036e7ee-f4ac-442d-827c-9c1103d6fd35">
|
||||
<Output>
|
||||
<StdOut>Refreshes a real token</StdOut>
|
||||
<ErrorInfo>
|
||||
<Message>Refreshes a real token</Message>
|
||||
</ErrorInfo>
|
||||
</Output>
|
||||
</UnitTestResult>
|
||||
<UnitTestResult executionId="4646c279-d3ea-4c5f-8d7e-bc474dff36a0" testId="78fb2759-932d-72a7-9e7e-ac929f17aa89" testName="FileLifecycleWorks" computerName="DORNY-PC" duration="00:00:00.0950000" startTime="2021-04-20T21:20:35.3941586+02:00" endTime="2021-04-20T21:20:35.4892394+02:00" testType="13cdc9d9-ddb5-4fa4-a97d-d965ccfc6d4b" outcome="Passed" testListId="8c84fa94-04c1-424b-9868-57a2d4851a1d" relativeResultsDirectory="4646c279-d3ea-4c5f-8d7e-bc474dff36a0" />
|
||||
<UnitTestResult executionId="323ec250-debb-4974-a77c-b2e462205ee5" testId="4f4c9855-a72a-565f-2470-2a0c650d1bed" testName="ParseRealWorldGoogleRejectResponse" computerName="DORNY-PC" duration="00:00:00.0000001" startTime="2021-04-20T21:20:35.7597346+02:00" endTime="2021-04-20T21:20:35.7599106+02:00" testType="13cdc9d9-ddb5-4fa4-a97d-d965ccfc6d4b" outcome="Passed" testListId="8c84fa94-04c1-424b-9868-57a2d4851a1d" relativeResultsDirectory="323ec250-debb-4974-a77c-b2e462205ee5" />
|
||||
<UnitTestResult executionId="689b6dee-0717-4c98-8311-8209865a4f64" testId="36be699c-4582-1e8a-20db-4c133825364b" testName="ReallyDoOpenAuthorizationPageInBrowser" computerName="DORNY-PC" startTime="2021-04-20T21:20:35.7105869+02:00" endTime="2021-04-20T21:20:35.7105879+02:00" testType="13cdc9d9-ddb5-4fa4-a97d-d965ccfc6d4b" outcome="NotExecuted" testListId="8c84fa94-04c1-424b-9868-57a2d4851a1d" relativeResultsDirectory="689b6dee-0717-4c98-8311-8209865a4f64">
|
||||
<Output>
|
||||
<StdOut>Opens the authorization page in the system browse, to get a real authorization-code</StdOut>
|
||||
<ErrorInfo>
|
||||
<Message>Opens the authorization page in the system browse, to get a real authorization-code</Message>
|
||||
</ErrorInfo>
|
||||
</Output>
|
||||
</UnitTestResult>
|
||||
<UnitTestResult executionId="bb6db51d-b3b6-4e49-aa85-191ae39f1037" testId="a9a707d5-0f10-eedc-d978-b6a36a0c8856" testName="CorrectlyConvertsSecureStringToUnicodeBytes" computerName="DORNY-PC" duration="00:00:00.0000001" startTime="2021-04-20T21:20:35.7727689+02:00" endTime="2021-04-20T21:20:35.7731239+02:00" testType="13cdc9d9-ddb5-4fa4-a97d-d965ccfc6d4b" outcome="Passed" testListId="8c84fa94-04c1-424b-9868-57a2d4851a1d" relativeResultsDirectory="bb6db51d-b3b6-4e49-aa85-191ae39f1037" />
|
||||
<UnitTestResult executionId="17bf26a1-1224-4ece-91b3-c22a23c8aabd" testId="38cf86d6-f477-94c5-ae5a-bfe5908ca917" testName="ThrowsWithInvalidUsername" computerName="DORNY-PC" startTime="2021-04-20T21:20:35.6633708+02:00" endTime="2021-04-20T21:20:35.6633717+02:00" testType="13cdc9d9-ddb5-4fa4-a97d-d965ccfc6d4b" outcome="NotExecuted" testListId="8c84fa94-04c1-424b-9868-57a2d4851a1d" relativeResultsDirectory="17bf26a1-1224-4ece-91b3-c22a23c8aabd">
|
||||
<Output>
|
||||
<StdOut>Too many consecutive fails seems to block an FTP server.</StdOut>
|
||||
<ErrorInfo>
|
||||
<Message>Too many consecutive fails seems to block an FTP server.</Message>
|
||||
</ErrorInfo>
|
||||
</Output>
|
||||
</UnitTestResult>
|
||||
<UnitTestResult executionId="aa9960ae-203a-4e06-8fa5-72221f1f76ae" testId="c6442343-bfe7-0dd6-2de0-bf97d26d89ba" testName="BuildAuthorizationRequestUrlEscapesParameters" computerName="DORNY-PC" duration="00:00:00.0020000" startTime="2021-04-20T21:20:35.7475699+02:00" endTime="2021-04-20T21:20:35.7492413+02:00" testType="13cdc9d9-ddb5-4fa4-a97d-d965ccfc6d4b" outcome="Passed" testListId="8c84fa94-04c1-424b-9868-57a2d4851a1d" relativeResultsDirectory="aa9960ae-203a-4e06-8fa5-72221f1f76ae" />
|
||||
<UnitTestResult executionId="cadbf9fb-9bfe-4193-9efa-cc02a33a13bd" testId="df7f153f-97b0-b127-aad8-16ec21c92a8b" testName="FetchTokenThrowsWithWrongState" computerName="DORNY-PC" duration="00:00:00.0010000" startTime="2021-04-20T21:20:35.7688159+02:00" endTime="2021-04-20T21:20:35.7696200+02:00" testType="13cdc9d9-ddb5-4fa4-a97d-d965ccfc6d4b" outcome="Passed" testListId="8c84fa94-04c1-424b-9868-57a2d4851a1d" relativeResultsDirectory="cadbf9fb-9bfe-4193-9efa-cc02a33a13bd" />
|
||||
<UnitTestResult executionId="94dd40b9-b1ce-470c-8c0e-f6bbaa100a54" testId="c62f7f2c-529c-dc57-520f-bbd68be945a7" testName="BuildOAuth2AuthorizationRequestUrlWorks" computerName="DORNY-PC" duration="00:00:00.0010000" startTime="2021-04-20T21:20:35.7601913+02:00" endTime="2021-04-20T21:20:35.7608168+02:00" testType="13cdc9d9-ddb5-4fa4-a97d-d965ccfc6d4b" outcome="Passed" testListId="8c84fa94-04c1-424b-9868-57a2d4851a1d" relativeResultsDirectory="94dd40b9-b1ce-470c-8c0e-f6bbaa100a54" />
|
||||
<UnitTestResult executionId="1bb8b762-a68d-4341-b1de-7e6f835a0711" testId="8a4a2c3a-671a-6167-0ea9-afbf6f12c47f" testName="AreEqualsWorksCorrectly" computerName="DORNY-PC" duration="00:00:00.0000001" startTime="2021-04-20T21:20:35.7723992+02:00" endTime="2021-04-20T21:20:35.7726078+02:00" testType="13cdc9d9-ddb5-4fa4-a97d-d965ccfc6d4b" outcome="Passed" testListId="8c84fa94-04c1-424b-9868-57a2d4851a1d" relativeResultsDirectory="1bb8b762-a68d-4341-b1de-7e6f835a0711" />
|
||||
<UnitTestResult executionId="585b5a0f-9271-46a1-b8c3-0dae87316e94" testId="ad676737-0a35-dba6-3ba9-cec823374fda" testName="EncryptBeforeSerializationRespectsNullProperties" computerName="DORNY-PC" duration="00:00:00.0000001" startTime="2021-04-20T21:20:35.7773547+02:00" endTime="2021-04-20T21:20:35.7775198+02:00" testType="13cdc9d9-ddb5-4fa4-a97d-d965ccfc6d4b" outcome="Passed" testListId="8c84fa94-04c1-424b-9868-57a2d4851a1d" relativeResultsDirectory="585b5a0f-9271-46a1-b8c3-0dae87316e94" />
|
||||
<UnitTestResult executionId="8c79c5a4-5298-40ae-95b7-546701afd83a" testId="7cfb656b-616e-5dab-c649-021521679abb" testName="ThrowsWithInvalidPassword" computerName="DORNY-PC" startTime="2021-04-20T21:20:35.6633473+02:00" endTime="2021-04-20T21:20:35.6633604+02:00" testType="13cdc9d9-ddb5-4fa4-a97d-d965ccfc6d4b" outcome="NotExecuted" testListId="8c84fa94-04c1-424b-9868-57a2d4851a1d" relativeResultsDirectory="8c79c5a4-5298-40ae-95b7-546701afd83a">
|
||||
<Output>
|
||||
<StdOut>Too many consecutive fails seems to block an FTP server.</StdOut>
|
||||
<ErrorInfo>
|
||||
<Message>Too many consecutive fails seems to block an FTP server.</Message>
|
||||
</ErrorInfo>
|
||||
</Output>
|
||||
</UnitTestResult>
|
||||
<UnitTestResult executionId="2a90bce3-7856-4e93-b710-ca7c3ce5b3dc" testId="ab91e3c1-6d51-74c8-f790-8c37d82e665d" testName="AreEqualWorksWithDifferentPassword" computerName="DORNY-PC" duration="00:00:00.0070000" startTime="2021-04-20T21:20:35.3580525+02:00" endTime="2021-04-20T21:20:35.3649197+02:00" testType="13cdc9d9-ddb5-4fa4-a97d-d965ccfc6d4b" outcome="Passed" testListId="8c84fa94-04c1-424b-9868-57a2d4851a1d" relativeResultsDirectory="2a90bce3-7856-4e93-b710-ca7c3ce5b3dc" />
|
||||
<UnitTestResult executionId="913d29d6-2c2e-4fbe-9c8f-d98ee5b00423" testId="60635b8d-24f2-11d2-6983-d8dee19f4282" testName="AreEqualWorksWithNullDate" computerName="DORNY-PC" duration="00:00:00.0000001" startTime="2021-04-20T21:20:35.7417093+02:00" endTime="2021-04-20T21:20:35.7420941+02:00" testType="13cdc9d9-ddb5-4fa4-a97d-d965ccfc6d4b" outcome="Passed" testListId="8c84fa94-04c1-424b-9868-57a2d4851a1d" relativeResultsDirectory="913d29d6-2c2e-4fbe-9c8f-d98ee5b00423" />
|
||||
<UnitTestResult executionId="4652ec4f-b2e8-4f57-8608-da377196ffda" testId="dba5c72e-5a00-8132-c3c9-ae0e981adf72" testName="SerializedXmlCanBeReadBack" computerName="DORNY-PC" duration="00:00:00.0160000" startTime="2021-04-20T21:20:35.8032746+02:00" endTime="2021-04-20T21:20:35.8188059+02:00" testType="13cdc9d9-ddb5-4fa4-a97d-d965ccfc6d4b" outcome="Passed" testListId="8c84fa94-04c1-424b-9868-57a2d4851a1d" relativeResultsDirectory="4652ec4f-b2e8-4f57-8608-da377196ffda" />
|
||||
<UnitTestResult executionId="b3a2df60-79e7-4182-940c-95c638007796" testId="c5f9094a-f978-a711-21dd-69c261de1b9a" testName="BuildAuthorizationRequestUrlUsesCodeVerifier" computerName="DORNY-PC" duration="00:00:00.0010000" startTime="2021-04-20T21:20:35.7499237+02:00" endTime="2021-04-20T21:20:35.7506530+02:00" testType="13cdc9d9-ddb5-4fa4-a97d-d965ccfc6d4b" outcome="Passed" testListId="8c84fa94-04c1-424b-9868-57a2d4851a1d" relativeResultsDirectory="b3a2df60-79e7-4182-940c-95c638007796" />
|
||||
<UnitTestResult executionId="119bdc21-2d3d-4ce0-bed8-1dfe806a6450" testId="06eb9298-0f08-8297-1ae0-b93dff5bc18d" testName="CorrectlyConvertsSecureStringToUtf8Bytes" computerName="DORNY-PC" duration="00:00:00.0000001" startTime="2021-04-20T21:20:35.7731349+02:00" endTime="2021-04-20T21:20:35.7732784+02:00" testType="13cdc9d9-ddb5-4fa4-a97d-d965ccfc6d4b" outcome="Passed" testListId="8c84fa94-04c1-424b-9868-57a2d4851a1d" relativeResultsDirectory="119bdc21-2d3d-4ce0-bed8-1dfe806a6450" />
|
||||
<UnitTestResult executionId="dd41ab72-b415-46bf-aa6c-be2b038acc3a" testId="1c366be0-e44e-8e31-b7f2-e17b393d6db3" testName="ReallyDoRefreshToken" computerName="DORNY-PC" startTime="2021-04-20T21:20:35.4897989+02:00" endTime="2021-04-20T21:20:35.4898000+02:00" testType="13cdc9d9-ddb5-4fa4-a97d-d965ccfc6d4b" outcome="NotExecuted" testListId="8c84fa94-04c1-424b-9868-57a2d4851a1d" relativeResultsDirectory="dd41ab72-b415-46bf-aa6c-be2b038acc3a">
|
||||
<Output>
|
||||
<StdOut>Refreshes a real token</StdOut>
|
||||
<ErrorInfo>
|
||||
<Message>Refreshes a real token</Message>
|
||||
</ErrorInfo>
|
||||
</Output>
|
||||
</UnitTestResult>
|
||||
<UnitTestResult executionId="b6b90c5b-0b91-48b9-b160-eaae1740e609" testId="1bca23e2-1e33-fa8a-6cb7-6c20c96558d3" testName="ParsesUnknownErrorCodeCorrectly" computerName="DORNY-PC" duration="00:00:00.0000001" startTime="2021-04-20T21:20:35.7473520+02:00" endTime="2021-04-20T21:20:35.7474597+02:00" testType="13cdc9d9-ddb5-4fa4-a97d-d965ccfc6d4b" outcome="Passed" testListId="8c84fa94-04c1-424b-9868-57a2d4851a1d" relativeResultsDirectory="b6b90c5b-0b91-48b9-b160-eaae1740e609" />
|
||||
<UnitTestResult executionId="f73fc410-415a-405e-89e2-9146b483ec2c" testId="67ebdd70-ceee-6efa-b3eb-07b0cb165f16" testName="AreEqualWorksWithSameContent" computerName="DORNY-PC" duration="00:00:00.0000001" startTime="2021-04-20T21:20:35.7421072+02:00" endTime="2021-04-20T21:20:35.7423337+02:00" testType="13cdc9d9-ddb5-4fa4-a97d-d965ccfc6d4b" outcome="Passed" testListId="8c84fa94-04c1-424b-9868-57a2d4851a1d" relativeResultsDirectory="f73fc410-415a-405e-89e2-9146b483ec2c" />
|
||||
</Results>
|
||||
<TestDefinitions>
|
||||
<UnitTest name="ParseRealWorldGoogleSuccessResponse" storage="c:\users\michal\workspace\github\silentnotes\bin\vanillacloudstorageclienttest\netcoreapp2.1\vanillacloudstorageclienttest.dll" id="e684ae1a-ebd6-8708-4f88-d018712c6d26">
|
||||
<Execution id="4c6f6322-a4c6-4738-b068-1baf9c286a03" />
|
||||
<TestMethod codeBase="C:\Users\Michal\Workspace\github\SilentNotes\bin\VanillaCloudStorageClientTest\netcoreapp2.1\VanillaCloudStorageClientTest.dll" adapterTypeName="executor://nunit3testexecutor/" className="VanillaCloudStorageClientTest.OAuth2.OAuth2UtilsTest" name="ParseRealWorldGoogleSuccessResponse" />
|
||||
</UnitTest>
|
||||
<UnitTest name="CorrectlyConvertsUnicodeBytesToSecureString" storage="c:\users\michal\workspace\github\silentnotes\bin\vanillacloudstorageclienttest\netcoreapp2.1\vanillacloudstorageclienttest.dll" id="4af5858f-3f1a-a886-5596-87475d64aeb3">
|
||||
<Execution id="7660f5b8-b4fa-4388-9118-e136c6490dd8" />
|
||||
<TestMethod codeBase="C:\Users\Michal\Workspace\github\SilentNotes\bin\VanillaCloudStorageClientTest\netcoreapp2.1\VanillaCloudStorageClientTest.dll" adapterTypeName="executor://nunit3testexecutor/" className="VanillaCloudStorageClientTest.SecureStringExtensionsTest" name="CorrectlyConvertsUnicodeBytesToSecureString" />
|
||||
</UnitTest>
|
||||
<UnitTest name="AreEqualsWorksCorrectly" storage="c:\users\michal\workspace\github\silentnotes\bin\vanillacloudstorageclienttest\netcoreapp2.1\vanillacloudstorageclienttest.dll" id="8a4a2c3a-671a-6167-0ea9-afbf6f12c47f">
|
||||
<Execution id="1bb8b762-a68d-4341-b1de-7e6f835a0711" />
|
||||
<TestMethod codeBase="C:\Users\Michal\Workspace\github\SilentNotes\bin\VanillaCloudStorageClientTest\netcoreapp2.1\VanillaCloudStorageClientTest.dll" adapterTypeName="executor://nunit3testexecutor/" className="VanillaCloudStorageClientTest.SecureStringExtensionsTest" name="AreEqualsWorksCorrectly" />
|
||||
</UnitTest>
|
||||
<UnitTest name="FileLifecycleWorks" storage="c:\users\michal\workspace\github\silentnotes\bin\vanillacloudstorageclienttest\netcoreapp2.1\vanillacloudstorageclienttest.dll" id="89dd1b67-c0ca-dcc6-ca42-c4f3660c0208">
|
||||
<Execution id="7c73d2a6-34a5-400d-8163-40375210062f" />
|
||||
<TestMethod codeBase="C:\Users\Michal\Workspace\github\SilentNotes\bin\VanillaCloudStorageClientTest\netcoreapp2.1\VanillaCloudStorageClientTest.dll" adapterTypeName="executor://nunit3testexecutor/" className="VanillaCloudStorageClientTest.CloudStorageProviders.FtpCloudStorageClientTest" name="FileLifecycleWorks" />
|
||||
</UnitTest>
|
||||
<UnitTest name="ChoosesCorrectUrlForGmxNetEmail" storage="c:\users\michal\workspace\github\silentnotes\bin\vanillacloudstorageclienttest\netcoreapp2.1\vanillacloudstorageclienttest.dll" id="d941f923-cd04-ee0a-427c-b81e14aafa3d">
|
||||
<Execution id="093b7fc9-4477-4bcf-9443-6cc760333b4a" />
|
||||
<TestMethod codeBase="C:\Users\Michal\Workspace\github\SilentNotes\bin\VanillaCloudStorageClientTest\netcoreapp2.1\VanillaCloudStorageClientTest.dll" adapterTypeName="executor://nunit3testexecutor/" className="VanillaCloudStorageClientTest.CloudStorageProviders.GmxCloudStorageClientTest" name="ChoosesCorrectUrlForGmxNetEmail" />
|
||||
</UnitTest>
|
||||
<UnitTest name="SerializedJsonDoesNotContainNullProperties" storage="c:\users\michal\workspace\github\silentnotes\bin\vanillacloudstorageclienttest\netcoreapp2.1\vanillacloudstorageclienttest.dll" id="4340b799-0666-32b6-4fdd-1daf8a626bc7">
|
||||
<Execution id="a9e342c2-bc62-4b01-835b-842bec9f2d4c" />
|
||||
<TestMethod codeBase="C:\Users\Michal\Workspace\github\SilentNotes\bin\VanillaCloudStorageClientTest\netcoreapp2.1\VanillaCloudStorageClientTest.dll" adapterTypeName="executor://nunit3testexecutor/" className="VanillaCloudStorageClientTest.SerializeableCloudStorageCredentialsTest" name="SerializedJsonDoesNotContainNullProperties" />
|
||||
</UnitTest>
|
||||
<UnitTest name="BuildOAuth2AuthorizationRequestUrlWorks" storage="c:\users\michal\workspace\github\silentnotes\bin\vanillacloudstorageclienttest\netcoreapp2.1\vanillacloudstorageclienttest.dll" id="c62f7f2c-529c-dc57-520f-bbd68be945a7">
|
||||
<Execution id="94dd40b9-b1ce-470c-8c0e-f6bbaa100a54" />
|
||||
<TestMethod codeBase="C:\Users\Michal\Workspace\github\SilentNotes\bin\VanillaCloudStorageClientTest\netcoreapp2.1\VanillaCloudStorageClientTest.dll" adapterTypeName="executor://nunit3testexecutor/" className="VanillaCloudStorageClientTest.OAuth2CloudStorageClientTest" name="BuildOAuth2AuthorizationRequestUrlWorks" />
|
||||
</UnitTest>
|
||||
<UnitTest name="FetchTokenThrowsWithWrongState" storage="c:\users\michal\workspace\github\silentnotes\bin\vanillacloudstorageclienttest\netcoreapp2.1\vanillacloudstorageclienttest.dll" id="df7f153f-97b0-b127-aad8-16ec21c92a8b">
|
||||
<Execution id="cadbf9fb-9bfe-4193-9efa-cc02a33a13bd" />
|
||||
<TestMethod codeBase="C:\Users\Michal\Workspace\github\SilentNotes\bin\VanillaCloudStorageClientTest\netcoreapp2.1\VanillaCloudStorageClientTest.dll" adapterTypeName="executor://nunit3testexecutor/" className="VanillaCloudStorageClientTest.OAuth2CloudStorageClientTest" name="FetchTokenThrowsWithWrongState" />
|
||||
</UnitTest>
|
||||
<UnitTest name="BuildAuthorizationRequestUrlUsesCodeVerifier" storage="c:\users\michal\workspace\github\silentnotes\bin\vanillacloudstorageclienttest\netcoreapp2.1\vanillacloudstorageclienttest.dll" id="c5f9094a-f978-a711-21dd-69c261de1b9a">
|
||||
<Execution id="b3a2df60-79e7-4182-940c-95c638007796" />
|
||||
<TestMethod codeBase="C:\Users\Michal\Workspace\github\SilentNotes\bin\VanillaCloudStorageClientTest\netcoreapp2.1\VanillaCloudStorageClientTest.dll" adapterTypeName="executor://nunit3testexecutor/" className="VanillaCloudStorageClientTest.OAuth2.OAuth2UtilsTest" name="BuildAuthorizationRequestUrlUsesCodeVerifier" />
|
||||
</UnitTest>
|
||||
<UnitTest name="ReallyDoFetchToken" storage="c:\users\michal\workspace\github\silentnotes\bin\vanillacloudstorageclienttest\netcoreapp2.1\vanillacloudstorageclienttest.dll" id="ce42ac62-8706-8922-cf93-ac01f045e42d">
|
||||
<Execution id="eeeeda37-81c3-4432-93c3-6197cc86aec4" />
|
||||
<TestMethod codeBase="C:\Users\Michal\Workspace\github\SilentNotes\bin\VanillaCloudStorageClientTest\netcoreapp2.1\VanillaCloudStorageClientTest.dll" adapterTypeName="executor://nunit3testexecutor/" className="VanillaCloudStorageClientTest.CloudStorageProviders.OnedriveCloudStorageClientTest" name="ReallyDoFetchToken" />
|
||||
</UnitTest>
|
||||
<UnitTest name="ThrowsWithInvalidUrl" storage="c:\users\michal\workspace\github\silentnotes\bin\vanillacloudstorageclienttest\netcoreapp2.1\vanillacloudstorageclienttest.dll" id="ca777d22-3b0f-e952-bd8a-c5660245a81f">
|
||||
<Execution id="99ffb4ca-843c-48e2-ba37-90424746c53f" />
|
||||
<TestMethod codeBase="C:\Users\Michal\Workspace\github\SilentNotes\bin\VanillaCloudStorageClientTest\netcoreapp2.1\VanillaCloudStorageClientTest.dll" adapterTypeName="executor://nunit3testexecutor/" className="VanillaCloudStorageClientTest.CloudStorageProviders.FtpCloudStorageClientTest" name="ThrowsWithInvalidUrl" />
|
||||
</UnitTest>
|
||||
<UnitTest name="SerializedXmlDoesNotContainNullProperties" storage="c:\users\michal\workspace\github\silentnotes\bin\vanillacloudstorageclienttest\netcoreapp2.1\vanillacloudstorageclienttest.dll" id="767acdfc-0e73-c887-803e-31c8aaa97dde">
|
||||
<Execution id="ea83c2aa-3b60-4ddc-bc14-f7e8c0f4cc2a" />
|
||||
<TestMethod codeBase="C:\Users\Michal\Workspace\github\SilentNotes\bin\VanillaCloudStorageClientTest\netcoreapp2.1\VanillaCloudStorageClientTest.dll" adapterTypeName="executor://nunit3testexecutor/" className="VanillaCloudStorageClientTest.SerializeableCloudStorageCredentialsTest" name="SerializedXmlDoesNotContainNullProperties" />
|
||||
</UnitTest>
|
||||
<UnitTest name="CorrectlyConvertsStringToSecureString" storage="c:\users\michal\workspace\github\silentnotes\bin\vanillacloudstorageclienttest\netcoreapp2.1\vanillacloudstorageclienttest.dll" id="64d76ddb-a88f-9c22-6ed0-af3ecb98ffb9">
|
||||
<Execution id="aa3eef6e-4555-49bd-a1fa-ef6f663a5d22" />
|
||||
<TestMethod codeBase="C:\Users\Michal\Workspace\github\SilentNotes\bin\VanillaCloudStorageClientTest\netcoreapp2.1\VanillaCloudStorageClientTest.dll" adapterTypeName="executor://nunit3testexecutor/" className="VanillaCloudStorageClientTest.CloudStorageCredentialsTest" name="CorrectlyConvertsStringToSecureString" />
|
||||
</UnitTest>
|
||||
<UnitTest name="FetchTokenCanInterpretGoogleResponse" storage="c:\users\michal\workspace\github\silentnotes\bin\vanillacloudstorageclienttest\netcoreapp2.1\vanillacloudstorageclienttest.dll" id="3640390a-9ea3-e873-ecaf-b1f0acce39dc">
|
||||
<Execution id="0d4f644d-4bfc-49e5-9983-56d071104b86" />
|
||||
<TestMethod codeBase="C:\Users\Michal\Workspace\github\SilentNotes\bin\VanillaCloudStorageClientTest\netcoreapp2.1\VanillaCloudStorageClientTest.dll" adapterTypeName="executor://nunit3testexecutor/" className="VanillaCloudStorageClientTest.OAuth2CloudStorageClientTest" name="FetchTokenCanInterpretGoogleResponse" />
|
||||
</UnitTest>
|
||||
<UnitTest name="ReallyDoOpenAuthorizationPageInBrowser" storage="c:\users\michal\workspace\github\silentnotes\bin\vanillacloudstorageclienttest\netcoreapp2.1\vanillacloudstorageclienttest.dll" id="36be699c-4582-1e8a-20db-4c133825364b">
|
||||
<Execution id="689b6dee-0717-4c98-8311-8209865a4f64" />
|
||||
<TestMethod codeBase="C:\Users\Michal\Workspace\github\SilentNotes\bin\VanillaCloudStorageClientTest\netcoreapp2.1\VanillaCloudStorageClientTest.dll" adapterTypeName="executor://nunit3testexecutor/" className="VanillaCloudStorageClientTest.CloudStorageProviders.GoogleCloudStorageClientTest" name="ReallyDoOpenAuthorizationPageInBrowser" />
|
||||
</UnitTest>
|
||||
<UnitTest name="CorrectlyConvertsUtf8BytesToSecureString" storage="c:\users\michal\workspace\github\silentnotes\bin\vanillacloudstorageclienttest\netcoreapp2.1\vanillacloudstorageclienttest.dll" id="a436d607-b2be-f301-d56f-50716e7b321a">
|
||||
<Execution id="52fca9fd-4e45-4f44-9857-f267268b0924" />
|
||||
<TestMethod codeBase="C:\Users\Michal\Workspace\github\SilentNotes\bin\VanillaCloudStorageClientTest\netcoreapp2.1\VanillaCloudStorageClientTest.dll" adapterTypeName="executor://nunit3testexecutor/" className="VanillaCloudStorageClientTest.SecureStringExtensionsTest" name="CorrectlyConvertsUtf8BytesToSecureString" />
|
||||
</UnitTest>
|
||||
<UnitTest name="BuildAuthorizationRequestUrlLeavesOutOptionalParameters" storage="c:\users\michal\workspace\github\silentnotes\bin\vanillacloudstorageclienttest\netcoreapp2.1\vanillacloudstorageclienttest.dll" id="50701c3a-d1b9-0423-26e6-4be52cf1d5f0">
|
||||
<Execution id="0e32eb27-9a2c-497d-8d96-4852e04f9247" />
|
||||
<TestMethod codeBase="C:\Users\Michal\Workspace\github\SilentNotes\bin\VanillaCloudStorageClientTest\netcoreapp2.1\VanillaCloudStorageClientTest.dll" adapterTypeName="executor://nunit3testexecutor/" className="VanillaCloudStorageClientTest.OAuth2.OAuth2UtilsTest" name="BuildAuthorizationRequestUrlLeavesOutOptionalParameters" />
|
||||
</UnitTest>
|
||||
<UnitTest name="ParsesAllErrorCodesCorrectly" storage="c:\users\michal\workspace\github\silentnotes\bin\vanillacloudstorageclienttest\netcoreapp2.1\vanillacloudstorageclienttest.dll" id="e3bf520c-cf79-f90b-dc21-9c25e58a369d">
|
||||
<Execution id="ca75b323-cd43-4a26-9e6f-fa3650cc9eca" />
|
||||
<TestMethod codeBase="C:\Users\Michal\Workspace\github\SilentNotes\bin\VanillaCloudStorageClientTest\netcoreapp2.1\VanillaCloudStorageClientTest.dll" adapterTypeName="executor://nunit3testexecutor/" className="VanillaCloudStorageClientTest.OAuth2.AuthorizationResponseErrorTest" name="ParsesAllErrorCodesCorrectly" />
|
||||
</UnitTest>
|
||||
<UnitTest name="SerializedDatacontractCanBeReadBack" storage="c:\users\michal\workspace\github\silentnotes\bin\vanillacloudstorageclienttest\netcoreapp2.1\vanillacloudstorageclienttest.dll" id="75ed4b0d-8eff-6a45-b5e4-0db6070c60bb">
|
||||
<Execution id="8073954d-cee8-455e-a86d-97e8a4ec614d" />
|
||||
<TestMethod codeBase="C:\Users\Michal\Workspace\github\SilentNotes\bin\VanillaCloudStorageClientTest\netcoreapp2.1\VanillaCloudStorageClientTest.dll" adapterTypeName="executor://nunit3testexecutor/" className="VanillaCloudStorageClientTest.SerializeableCloudStorageCredentialsTest" name="SerializedDatacontractCanBeReadBack" />
|
||||
</UnitTest>
|
||||
<UnitTest name="BuildAuthorizationRequestUrlUsesAllParameters" storage="c:\users\michal\workspace\github\silentnotes\bin\vanillacloudstorageclienttest\netcoreapp2.1\vanillacloudstorageclienttest.dll" id="275ce8fa-d4c1-63f1-9add-641a70fb73e6">
|
||||
<Execution id="e7b019dd-c6ee-40b6-91d9-c7f4bfb03f55" />
|
||||
<TestMethod codeBase="C:\Users\Michal\Workspace\github\SilentNotes\bin\VanillaCloudStorageClientTest\netcoreapp2.1\VanillaCloudStorageClientTest.dll" adapterTypeName="executor://nunit3testexecutor/" className="VanillaCloudStorageClientTest.OAuth2.OAuth2UtilsTest" name="BuildAuthorizationRequestUrlUsesAllParameters" />
|
||||
</UnitTest>
|
||||
<UnitTest name="SecureSslConnectionWorks" storage="c:\users\michal\workspace\github\silentnotes\bin\vanillacloudstorageclienttest\netcoreapp2.1\vanillacloudstorageclienttest.dll" id="432b7e9a-53e9-d7c7-531a-b22f10d8a0f5">
|
||||
<Execution id="5fbd98cc-68bb-4536-8a46-43b979e213a6" />
|
||||
<TestMethod codeBase="C:\Users\Michal\Workspace\github\SilentNotes\bin\VanillaCloudStorageClientTest\netcoreapp2.1\VanillaCloudStorageClientTest.dll" adapterTypeName="executor://nunit3testexecutor/" className="VanillaCloudStorageClientTest.CloudStorageProviders.FtpCloudStorageClientTest" name="SecureSslConnectionWorks" />
|
||||
</UnitTest>
|
||||
<UnitTest name="AreEqualWorksWithSameContent" storage="c:\users\michal\workspace\github\silentnotes\bin\vanillacloudstorageclienttest\netcoreapp2.1\vanillacloudstorageclienttest.dll" id="c6bece37-31ea-7f18-10f5-6b96a09f4154">
|
||||
<Execution id="cd51e1e5-acf8-4a63-a556-0dfd4d99b491" />
|
||||
<TestMethod codeBase="C:\Users\Michal\Workspace\github\SilentNotes\bin\VanillaCloudStorageClientTest\netcoreapp2.1\VanillaCloudStorageClientTest.dll" adapterTypeName="executor://nunit3testexecutor/" className="VanillaCloudStorageClientTest.CloudStorageCredentialsTest" name="AreEqualWorksWithSameContent" />
|
||||
</UnitTest>
|
||||
<UnitTest name="FileLifecycleWorks" storage="c:\users\michal\workspace\github\silentnotes\bin\vanillacloudstorageclienttest\netcoreapp2.1\vanillacloudstorageclienttest.dll" id="11d38d36-4090-e9ae-0dfe-52c8ffa930a6">
|
||||
<Execution id="0e832195-44c2-41d5-931b-fa2dc4d4655f" />
|
||||
<TestMethod codeBase="C:\Users\Michal\Workspace\github\SilentNotes\bin\VanillaCloudStorageClientTest\netcoreapp2.1\VanillaCloudStorageClientTest.dll" adapterTypeName="executor://nunit3testexecutor/" className="VanillaCloudStorageClientTest.CloudStorageProviders.OnedriveCloudStorageClientTest" name="FileLifecycleWorks" />
|
||||
</UnitTest>
|
||||
<UnitTest name="SerializedDatacontractDoesNotContainPlaintextData" storage="c:\users\michal\workspace\github\silentnotes\bin\vanillacloudstorageclienttest\netcoreapp2.1\vanillacloudstorageclienttest.dll" id="9da3226a-a96e-91f6-c5b6-b3102b5b332a">
|
||||
<Execution id="01ecb439-d050-4ac9-95c9-a7378091bcc5" />
|
||||
<TestMethod codeBase="C:\Users\Michal\Workspace\github\SilentNotes\bin\VanillaCloudStorageClientTest\netcoreapp2.1\VanillaCloudStorageClientTest.dll" adapterTypeName="executor://nunit3testexecutor/" className="VanillaCloudStorageClientTest.SerializeableCloudStorageCredentialsTest" name="SerializedDatacontractDoesNotContainPlaintextData" />
|
||||
</UnitTest>
|
||||
<UnitTest name="RefreshTokenCanInterpretGoogleResponse" storage="c:\users\michal\workspace\github\silentnotes\bin\vanillacloudstorageclienttest\netcoreapp2.1\vanillacloudstorageclienttest.dll" id="a4f5c6bf-c950-cfa4-1f50-3ce62d833293">
|
||||
<Execution id="5e0c0e75-9fc9-40ce-ba0a-9c2a0887bdac" />
|
||||
<TestMethod codeBase="C:\Users\Michal\Workspace\github\SilentNotes\bin\VanillaCloudStorageClientTest\netcoreapp2.1\VanillaCloudStorageClientTest.dll" adapterTypeName="executor://nunit3testexecutor/" className="VanillaCloudStorageClientTest.OAuth2CloudStorageClientTest" name="RefreshTokenCanInterpretGoogleResponse" />
|
||||
</UnitTest>
|
||||
<UnitTest name="ThrowsWithInvalidUsername" storage="c:\users\michal\workspace\github\silentnotes\bin\vanillacloudstorageclienttest\netcoreapp2.1\vanillacloudstorageclienttest.dll" id="38cf86d6-f477-94c5-ae5a-bfe5908ca917">
|
||||
<Execution id="17bf26a1-1224-4ece-91b3-c22a23c8aabd" />
|
||||
<TestMethod codeBase="C:\Users\Michal\Workspace\github\SilentNotes\bin\VanillaCloudStorageClientTest\netcoreapp2.1\VanillaCloudStorageClientTest.dll" adapterTypeName="executor://nunit3testexecutor/" className="VanillaCloudStorageClientTest.CloudStorageProviders.FtpCloudStorageClientTest" name="ThrowsWithInvalidUsername" />
|
||||
</UnitTest>
|
||||
<UnitTest name="ReallyDoRefreshToken" storage="c:\users\michal\workspace\github\silentnotes\bin\vanillacloudstorageclienttest\netcoreapp2.1\vanillacloudstorageclienttest.dll" id="1c366be0-e44e-8e31-b7f2-e17b393d6db3">
|
||||
<Execution id="dd41ab72-b415-46bf-aa6c-be2b038acc3a" />
|
||||
<TestMethod codeBase="C:\Users\Michal\Workspace\github\SilentNotes\bin\VanillaCloudStorageClientTest\netcoreapp2.1\VanillaCloudStorageClientTest.dll" adapterTypeName="executor://nunit3testexecutor/" className="VanillaCloudStorageClientTest.CloudStorageProviders.DropboxCloudStorageClientTest" name="ReallyDoRefreshToken" />
|
||||
</UnitTest>
|
||||
<UnitTest name="BuildAuthorizationRequestUrlEscapesParameters" storage="c:\users\michal\workspace\github\silentnotes\bin\vanillacloudstorageclienttest\netcoreapp2.1\vanillacloudstorageclienttest.dll" id="c6442343-bfe7-0dd6-2de0-bf97d26d89ba">
|
||||
<Execution id="aa9960ae-203a-4e06-8fa5-72221f1f76ae" />
|
||||
<TestMethod codeBase="C:\Users\Michal\Workspace\github\SilentNotes\bin\VanillaCloudStorageClientTest\netcoreapp2.1\VanillaCloudStorageClientTest.dll" adapterTypeName="executor://nunit3testexecutor/" className="VanillaCloudStorageClientTest.OAuth2.OAuth2UtilsTest" name="BuildAuthorizationRequestUrlEscapesParameters" />
|
||||
</UnitTest>
|
||||
<UnitTest name="CorrectlyConvertsStringToSecureString" storage="c:\users\michal\workspace\github\silentnotes\bin\vanillacloudstorageclienttest\netcoreapp2.1\vanillacloudstorageclienttest.dll" id="916a4c11-6ebe-26db-3769-b9df2051743c">
|
||||
<Execution id="cd601b6c-919f-4585-b5e6-d220a0ba17be" />
|
||||
<TestMethod codeBase="C:\Users\Michal\Workspace\github\SilentNotes\bin\VanillaCloudStorageClientTest\netcoreapp2.1\VanillaCloudStorageClientTest.dll" adapterTypeName="executor://nunit3testexecutor/" className="VanillaCloudStorageClientTest.SecureStringExtensionsTest" name="CorrectlyConvertsStringToSecureString" />
|
||||
</UnitTest>
|
||||
<UnitTest name="AreEqualWorksWithDifferentPassword" storage="c:\users\michal\workspace\github\silentnotes\bin\vanillacloudstorageclienttest\netcoreapp2.1\vanillacloudstorageclienttest.dll" id="ab91e3c1-6d51-74c8-f790-8c37d82e665d">
|
||||
<Execution id="2a90bce3-7856-4e93-b710-ca7c3ce5b3dc" />
|
||||
<TestMethod codeBase="C:\Users\Michal\Workspace\github\SilentNotes\bin\VanillaCloudStorageClientTest\netcoreapp2.1\VanillaCloudStorageClientTest.dll" adapterTypeName="executor://nunit3testexecutor/" className="VanillaCloudStorageClientTest.CloudStorageCredentialsTest" name="AreEqualWorksWithDifferentPassword" />
|
||||
</UnitTest>
|
||||
<UnitTest name="ParseGmxWebdavResponseCorrectly" storage="c:\users\michal\workspace\github\silentnotes\bin\vanillacloudstorageclienttest\netcoreapp2.1\vanillacloudstorageclienttest.dll" id="819198e9-75c1-9681-32e4-669dfa258e8a">
|
||||
<Execution id="14edf9a2-4d91-4d49-bbee-0400d51f8950" />
|
||||
<TestMethod codeBase="C:\Users\Michal\Workspace\github\SilentNotes\bin\VanillaCloudStorageClientTest\netcoreapp2.1\VanillaCloudStorageClientTest.dll" adapterTypeName="executor://nunit3testexecutor/" className="VanillaCloudStorageClientTest.CloudStorageProviders.WebdavCloudStorageClientTest" name="ParseGmxWebdavResponseCorrectly" />
|
||||
</UnitTest>
|
||||
<UnitTest name="ThrowsAccessDeniedExceptionWithInvalidToken" storage="c:\users\michal\workspace\github\silentnotes\bin\vanillacloudstorageclienttest\netcoreapp2.1\vanillacloudstorageclienttest.dll" id="5fa805b8-ec79-3c7c-8e87-3db6dc58f83e">
|
||||
<Execution id="06a2ec7f-dc87-4ee9-8394-fd650312a2ab" />
|
||||
<TestMethod codeBase="C:\Users\Michal\Workspace\github\SilentNotes\bin\VanillaCloudStorageClientTest\netcoreapp2.1\VanillaCloudStorageClientTest.dll" adapterTypeName="executor://nunit3testexecutor/" className="VanillaCloudStorageClientTest.CloudStorageProviders.DropboxCloudStorageClientTest" name="ThrowsAccessDeniedExceptionWithInvalidToken" />
|
||||
</UnitTest>
|
||||
<UnitTest name="SetExpiryDateBySecondsWorks" storage="c:\users\michal\workspace\github\silentnotes\bin\vanillacloudstorageclienttest\netcoreapp2.1\vanillacloudstorageclienttest.dll" id="5d03904b-0ce2-14e9-560e-6097c6faa283">
|
||||
<Execution id="5c34792d-1eb8-4798-b9f5-a37a5601d982" />
|
||||
<TestMethod codeBase="C:\Users\Michal\Workspace\github\SilentNotes\bin\VanillaCloudStorageClientTest\netcoreapp2.1\VanillaCloudStorageClientTest.dll" adapterTypeName="executor://nunit3testexecutor/" className="VanillaCloudStorageClientTest.CloudStorageTokenTest" name="SetExpiryDateBySecondsWorks" />
|
||||
</UnitTest>
|
||||
<UnitTest name="BuildAuthorizationRequestUrlThrowsWithMissingRedirectUrlForTokenFlow" storage="c:\users\michal\workspace\github\silentnotes\bin\vanillacloudstorageclienttest\netcoreapp2.1\vanillacloudstorageclienttest.dll" id="f7c94d67-56c9-6418-8a42-ddc79dc57ea2">
|
||||
<Execution id="ddc1f371-da00-4b39-bc51-e4467d1f519d" />
|
||||
<TestMethod codeBase="C:\Users\Michal\Workspace\github\SilentNotes\bin\VanillaCloudStorageClientTest\netcoreapp2.1\VanillaCloudStorageClientTest.dll" adapterTypeName="executor://nunit3testexecutor/" className="VanillaCloudStorageClientTest.OAuth2.OAuth2UtilsTest" name="BuildAuthorizationRequestUrlThrowsWithMissingRedirectUrlForTokenFlow" />
|
||||
</UnitTest>
|
||||
<UnitTest name="CorrectlyConvertsSecureStringToUnicodeBytes" storage="c:\users\michal\workspace\github\silentnotes\bin\vanillacloudstorageclienttest\netcoreapp2.1\vanillacloudstorageclienttest.dll" id="a9a707d5-0f10-eedc-d978-b6a36a0c8856">
|
||||
<Execution id="bb6db51d-b3b6-4e49-aa85-191ae39f1037" />
|
||||
<TestMethod codeBase="C:\Users\Michal\Workspace\github\SilentNotes\bin\VanillaCloudStorageClientTest\netcoreapp2.1\VanillaCloudStorageClientTest.dll" adapterTypeName="executor://nunit3testexecutor/" className="VanillaCloudStorageClientTest.SecureStringExtensionsTest" name="CorrectlyConvertsSecureStringToUnicodeBytes" />
|
||||
</UnitTest>
|
||||
<UnitTest name="EncryptBeforeSerializationProtectsAllNecessaryProperties" storage="c:\users\michal\workspace\github\silentnotes\bin\vanillacloudstorageclienttest\netcoreapp2.1\vanillacloudstorageclienttest.dll" id="951f28a9-26ae-8567-a07e-eef0e1def226">
|
||||
<Execution id="414673ca-5d78-4202-842b-7f13e7b40f2b" />
|
||||
<TestMethod codeBase="C:\Users\Michal\Workspace\github\SilentNotes\bin\VanillaCloudStorageClientTest\netcoreapp2.1\VanillaCloudStorageClientTest.dll" adapterTypeName="executor://nunit3testexecutor/" className="VanillaCloudStorageClientTest.SerializeableCloudStorageCredentialsTest" name="EncryptBeforeSerializationProtectsAllNecessaryProperties" />
|
||||
</UnitTest>
|
||||
<UnitTest name="AreEqualWorksWithSameContent" storage="c:\users\michal\workspace\github\silentnotes\bin\vanillacloudstorageclienttest\netcoreapp2.1\vanillacloudstorageclienttest.dll" id="67ebdd70-ceee-6efa-b3eb-07b0cb165f16">
|
||||
<Execution id="f73fc410-415a-405e-89e2-9146b483ec2c" />
|
||||
<TestMethod codeBase="C:\Users\Michal\Workspace\github\SilentNotes\bin\VanillaCloudStorageClientTest\netcoreapp2.1\VanillaCloudStorageClientTest.dll" adapterTypeName="executor://nunit3testexecutor/" className="VanillaCloudStorageClientTest.CloudStorageTokenTest" name="AreEqualWorksWithSameContent" />
|
||||
</UnitTest>
|
||||
<UnitTest name="ReallyDoRefreshToken" storage="c:\users\michal\workspace\github\silentnotes\bin\vanillacloudstorageclienttest\netcoreapp2.1\vanillacloudstorageclienttest.dll" id="28e75f1f-48b9-972a-3113-38add5d40440">
|
||||
<Execution id="df1e2af3-79ce-4ddc-87e9-aaee93bb557b" />
|
||||
<TestMethod codeBase="C:\Users\Michal\Workspace\github\SilentNotes\bin\VanillaCloudStorageClientTest\netcoreapp2.1\VanillaCloudStorageClientTest.dll" adapterTypeName="executor://nunit3testexecutor/" className="VanillaCloudStorageClientTest.CloudStorageProviders.OnedriveCloudStorageClientTest" name="ReallyDoRefreshToken" />
|
||||
</UnitTest>
|
||||
<UnitTest name="SerializedJsonCanBeReadBack" storage="c:\users\michal\workspace\github\silentnotes\bin\vanillacloudstorageclienttest\netcoreapp2.1\vanillacloudstorageclienttest.dll" id="e22320ba-05cc-579d-8c7d-c693d9b6406e">
|
||||
<Execution id="426d15ea-cd3e-4e87-8e2a-14502afbd98f" />
|
||||
<TestMethod codeBase="C:\Users\Michal\Workspace\github\SilentNotes\bin\VanillaCloudStorageClientTest\netcoreapp2.1\VanillaCloudStorageClientTest.dll" adapterTypeName="executor://nunit3testexecutor/" className="VanillaCloudStorageClientTest.SerializeableCloudStorageCredentialsTest" name="SerializedJsonCanBeReadBack" />
|
||||
</UnitTest>
|
||||
<UnitTest name="ReallyDoFetchToken" storage="c:\users\michal\workspace\github\silentnotes\bin\vanillacloudstorageclienttest\netcoreapp2.1\vanillacloudstorageclienttest.dll" id="2281e288-4c7c-bbf6-5b39-72098edf13cc">
|
||||
<Execution id="30222c71-5fd6-48d2-ac28-fcd942c4ed39" />
|
||||
<TestMethod codeBase="C:\Users\Michal\Workspace\github\SilentNotes\bin\VanillaCloudStorageClientTest\netcoreapp2.1\VanillaCloudStorageClientTest.dll" adapterTypeName="executor://nunit3testexecutor/" className="VanillaCloudStorageClientTest.CloudStorageProviders.DropboxCloudStorageClientTest" name="ReallyDoFetchToken" />
|
||||
</UnitTest>
|
||||
<UnitTest name="SerializedXmlDoesNotContainPlaintextData" storage="c:\users\michal\workspace\github\silentnotes\bin\vanillacloudstorageclienttest\netcoreapp2.1\vanillacloudstorageclienttest.dll" id="49a69aa8-9346-0600-d464-81784b9e612b">
|
||||
<Execution id="6234ffeb-0f16-4775-9eb0-759232f07cb4" />
|
||||
<TestMethod codeBase="C:\Users\Michal\Workspace\github\SilentNotes\bin\VanillaCloudStorageClientTest\netcoreapp2.1\VanillaCloudStorageClientTest.dll" adapterTypeName="executor://nunit3testexecutor/" className="VanillaCloudStorageClientTest.SerializeableCloudStorageCredentialsTest" name="SerializedXmlDoesNotContainPlaintextData" />
|
||||
</UnitTest>
|
||||
<UnitTest name="ParseRealWorldDropboxRejectResponse" storage="c:\users\michal\workspace\github\silentnotes\bin\vanillacloudstorageclienttest\netcoreapp2.1\vanillacloudstorageclienttest.dll" id="89e1d4aa-9217-7c34-fc4d-99ef9efe7a7d">
|
||||
<Execution id="0a807015-4876-4110-888e-ba37dfcce38a" />
|
||||
<TestMethod codeBase="C:\Users\Michal\Workspace\github\SilentNotes\bin\VanillaCloudStorageClientTest\netcoreapp2.1\VanillaCloudStorageClientTest.dll" adapterTypeName="executor://nunit3testexecutor/" className="VanillaCloudStorageClientTest.OAuth2.OAuth2UtilsTest" name="ParseRealWorldDropboxRejectResponse" />
|
||||
</UnitTest>
|
||||
<UnitTest name="ParsesUnknownErrorCodeCorrectly" storage="c:\users\michal\workspace\github\silentnotes\bin\vanillacloudstorageclienttest\netcoreapp2.1\vanillacloudstorageclienttest.dll" id="1bca23e2-1e33-fa8a-6cb7-6c20c96558d3">
|
||||
<Execution id="b6b90c5b-0b91-48b9-b160-eaae1740e609" />
|
||||
<TestMethod codeBase="C:\Users\Michal\Workspace\github\SilentNotes\bin\VanillaCloudStorageClientTest\netcoreapp2.1\VanillaCloudStorageClientTest.dll" adapterTypeName="executor://nunit3testexecutor/" className="VanillaCloudStorageClientTest.OAuth2.AuthorizationResponseErrorTest" name="ParsesUnknownErrorCodeCorrectly" />
|
||||
</UnitTest>
|
||||
<UnitTest name="ValidateRejectsInvalidCredentials" storage="c:\users\michal\workspace\github\silentnotes\bin\vanillacloudstorageclienttest\netcoreapp2.1\vanillacloudstorageclienttest.dll" id="c262190d-9c9e-6be3-5e5d-634c12813410">
|
||||
<Execution id="ed88606c-3b41-49bc-ae3f-f226d9464261" />
|
||||
<TestMethod codeBase="C:\Users\Michal\Workspace\github\SilentNotes\bin\VanillaCloudStorageClientTest\netcoreapp2.1\VanillaCloudStorageClientTest.dll" adapterTypeName="executor://nunit3testexecutor/" className="VanillaCloudStorageClientTest.CloudStorageCredentialsTest" name="ValidateRejectsInvalidCredentials" />
|
||||
</UnitTest>
|
||||
<UnitTest name="ReallyDoOpenAuthorizationPageInBrowser" storage="c:\users\michal\workspace\github\silentnotes\bin\vanillacloudstorageclienttest\netcoreapp2.1\vanillacloudstorageclienttest.dll" id="13e39882-2195-72c3-053f-9cff2ec1d67d">
|
||||
<Execution id="ed9923ba-9af6-4558-b34e-f49eb0456eff" />
|
||||
<TestMethod codeBase="C:\Users\Michal\Workspace\github\SilentNotes\bin\VanillaCloudStorageClientTest\netcoreapp2.1\VanillaCloudStorageClientTest.dll" adapterTypeName="executor://nunit3testexecutor/" className="VanillaCloudStorageClientTest.CloudStorageProviders.OnedriveCloudStorageClientTest" name="ReallyDoOpenAuthorizationPageInBrowser" />
|
||||
</UnitTest>
|
||||
<UnitTest name="ThrowsWithHttpInsteadOfFtp" storage="c:\users\michal\workspace\github\silentnotes\bin\vanillacloudstorageclienttest\netcoreapp2.1\vanillacloudstorageclienttest.dll" id="736ef283-7bdf-6b3e-0caf-6c21f948cdc6">
|
||||
<Execution id="1804b7c8-7729-426c-91d9-691ce82a1d7a" />
|
||||
<TestMethod codeBase="C:\Users\Michal\Workspace\github\SilentNotes\bin\VanillaCloudStorageClientTest\netcoreapp2.1\VanillaCloudStorageClientTest.dll" adapterTypeName="executor://nunit3testexecutor/" className="VanillaCloudStorageClientTest.CloudStorageProviders.FtpCloudStorageClientTest" name="ThrowsWithHttpInsteadOfFtp" />
|
||||
</UnitTest>
|
||||
<UnitTest name="FileLifecycleWorks" storage="c:\users\michal\workspace\github\silentnotes\bin\vanillacloudstorageclienttest\netcoreapp2.1\vanillacloudstorageclienttest.dll" id="b251efa4-be1f-5ed7-99ba-5339059780ec">
|
||||
<Execution id="80c55db9-4d42-4fd2-a48c-22ad4cd39105" />
|
||||
<TestMethod codeBase="C:\Users\Michal\Workspace\github\SilentNotes\bin\VanillaCloudStorageClientTest\netcoreapp2.1\VanillaCloudStorageClientTest.dll" adapterTypeName="executor://nunit3testexecutor/" className="VanillaCloudStorageClientTest.CloudStorageProviders.WebdavCloudStorageClientTest" name="FileLifecycleWorks" />
|
||||
</UnitTest>
|
||||
<UnitTest name="CorrectlyConvertsSecureStringToString" storage="c:\users\michal\workspace\github\silentnotes\bin\vanillacloudstorageclienttest\netcoreapp2.1\vanillacloudstorageclienttest.dll" id="cc085a0d-1f67-be85-d187-865a89737f10">
|
||||
<Execution id="705cbcf0-24cb-427d-848e-ed2970b0ab58" />
|
||||
<TestMethod codeBase="C:\Users\Michal\Workspace\github\SilentNotes\bin\VanillaCloudStorageClientTest\netcoreapp2.1\VanillaCloudStorageClientTest.dll" adapterTypeName="executor://nunit3testexecutor/" className="VanillaCloudStorageClientTest.CloudStorageCredentialsTest" name="CorrectlyConvertsSecureStringToString" />
|
||||
</UnitTest>
|
||||
<UnitTest name="DecryptAfterDesrializationCanReadAllPropertiesBack" storage="c:\users\michal\workspace\github\silentnotes\bin\vanillacloudstorageclienttest\netcoreapp2.1\vanillacloudstorageclienttest.dll" id="30bd1939-4032-847c-f269-bb1757915f16">
|
||||
<Execution id="0d72415d-fdfd-4cc2-b812-74abc7818f4e" />
|
||||
<TestMethod codeBase="C:\Users\Michal\Workspace\github\SilentNotes\bin\VanillaCloudStorageClientTest\netcoreapp2.1\VanillaCloudStorageClientTest.dll" adapterTypeName="executor://nunit3testexecutor/" className="VanillaCloudStorageClientTest.SerializeableCloudStorageCredentialsTest" name="DecryptAfterDesrializationCanReadAllPropertiesBack" />
|
||||
</UnitTest>
|
||||
<UnitTest name="ThrowsWithInvalidUsername" storage="c:\users\michal\workspace\github\silentnotes\bin\vanillacloudstorageclienttest\netcoreapp2.1\vanillacloudstorageclienttest.dll" id="61b1c53a-6b35-a0bd-cf9f-996f45b4c761">
|
||||
<Execution id="502e3c21-4407-4b5a-85ff-ed1eb355da72" />
|
||||
<TestMethod codeBase="C:\Users\Michal\Workspace\github\SilentNotes\bin\VanillaCloudStorageClientTest\netcoreapp2.1\VanillaCloudStorageClientTest.dll" adapterTypeName="executor://nunit3testexecutor/" className="VanillaCloudStorageClientTest.CloudStorageProviders.WebdavCloudStorageClientTest" name="ThrowsWithInvalidUsername" />
|
||||
</UnitTest>
|
||||
<UnitTest name="NeedsRefreshReturnsTrueIfExpired" storage="c:\users\michal\workspace\github\silentnotes\bin\vanillacloudstorageclienttest\netcoreapp2.1\vanillacloudstorageclienttest.dll" id="de4ced25-0268-f393-cea0-bb04d4c5a29e">
|
||||
<Execution id="6f544caa-1014-485e-95b2-60c343c818cb" />
|
||||
<TestMethod codeBase="C:\Users\Michal\Workspace\github\SilentNotes\bin\VanillaCloudStorageClientTest\netcoreapp2.1\VanillaCloudStorageClientTest.dll" adapterTypeName="executor://nunit3testexecutor/" className="VanillaCloudStorageClientTest.CloudStorageTokenTest" name="NeedsRefreshReturnsTrueIfExpired" />
|
||||
</UnitTest>
|
||||
<UnitTest name="ReallyDoFetchToken" storage="c:\users\michal\workspace\github\silentnotes\bin\vanillacloudstorageclienttest\netcoreapp2.1\vanillacloudstorageclienttest.dll" id="176fe880-e16d-469b-88c8-2560bc54254b">
|
||||
<Execution id="0b40b822-b7ff-400e-8c5b-26717502ad01" />
|
||||
<TestMethod codeBase="C:\Users\Michal\Workspace\github\SilentNotes\bin\VanillaCloudStorageClientTest\netcoreapp2.1\VanillaCloudStorageClientTest.dll" adapterTypeName="executor://nunit3testexecutor/" className="VanillaCloudStorageClientTest.CloudStorageProviders.GoogleCloudStorageClientTest" name="ReallyDoFetchToken" />
|
||||
</UnitTest>
|
||||
<UnitTest name="ReallyDoOpenAuthorizationPageInBrowser" storage="c:\users\michal\workspace\github\silentnotes\bin\vanillacloudstorageclienttest\netcoreapp2.1\vanillacloudstorageclienttest.dll" id="5dab3a75-ff5f-1e46-20cf-bc072154bb33">
|
||||
<Execution id="83d32025-8d5e-4a58-92b3-e797e4ea3bfa" />
|
||||
<TestMethod codeBase="C:\Users\Michal\Workspace\github\SilentNotes\bin\VanillaCloudStorageClientTest\netcoreapp2.1\VanillaCloudStorageClientTest.dll" adapterTypeName="executor://nunit3testexecutor/" className="VanillaCloudStorageClientTest.CloudStorageProviders.DropboxCloudStorageClientTest" name="ReallyDoOpenAuthorizationPageInBrowser" />
|
||||
</UnitTest>
|
||||
<UnitTest name="ParsesNullErrorCodeCorrectly" storage="c:\users\michal\workspace\github\silentnotes\bin\vanillacloudstorageclienttest\netcoreapp2.1\vanillacloudstorageclienttest.dll" id="ad03a66d-a9e8-9ade-31df-92fa6cac714b">
|
||||
<Execution id="0c9508da-1207-4eb3-891c-e66e5e768788" />
|
||||
<TestMethod codeBase="C:\Users\Michal\Workspace\github\SilentNotes\bin\VanillaCloudStorageClientTest\netcoreapp2.1\VanillaCloudStorageClientTest.dll" adapterTypeName="executor://nunit3testexecutor/" className="VanillaCloudStorageClientTest.OAuth2.AuthorizationResponseErrorTest" name="ParsesNullErrorCodeCorrectly" />
|
||||
</UnitTest>
|
||||
<UnitTest name="ReallyDoRefreshToken" storage="c:\users\michal\workspace\github\silentnotes\bin\vanillacloudstorageclienttest\netcoreapp2.1\vanillacloudstorageclienttest.dll" id="da7235ad-2f42-43de-0593-6a35cf28a618">
|
||||
<Execution id="a036e7ee-f4ac-442d-827c-9c1103d6fd35" />
|
||||
<TestMethod codeBase="C:\Users\Michal\Workspace\github\SilentNotes\bin\VanillaCloudStorageClientTest\netcoreapp2.1\VanillaCloudStorageClientTest.dll" adapterTypeName="executor://nunit3testexecutor/" className="VanillaCloudStorageClientTest.CloudStorageProviders.GoogleCloudStorageClientTest" name="ReallyDoRefreshToken" />
|
||||
</UnitTest>
|
||||
<UnitTest name="SetExpiryDateBySecondsWorksWithVeryShortPeriod" storage="c:\users\michal\workspace\github\silentnotes\bin\vanillacloudstorageclienttest\netcoreapp2.1\vanillacloudstorageclienttest.dll" id="be9e3070-8b2d-4cc8-2595-fb57d16c6cdd">
|
||||
<Execution id="b2c31d72-0f6f-4fd3-aadf-519c526ba627" />
|
||||
<TestMethod codeBase="C:\Users\Michal\Workspace\github\SilentNotes\bin\VanillaCloudStorageClientTest\netcoreapp2.1\VanillaCloudStorageClientTest.dll" adapterTypeName="executor://nunit3testexecutor/" className="VanillaCloudStorageClientTest.CloudStorageTokenTest" name="SetExpiryDateBySecondsWorksWithVeryShortPeriod" />
|
||||
</UnitTest>
|
||||
<UnitTest name="SetExpiryDateBySecondsWorksWithNull" storage="c:\users\michal\workspace\github\silentnotes\bin\vanillacloudstorageclienttest\netcoreapp2.1\vanillacloudstorageclienttest.dll" id="22de815b-16af-03c5-d819-7c8851c1da3c">
|
||||
<Execution id="1624ee85-3987-47af-9822-074bcbca9106" />
|
||||
<TestMethod codeBase="C:\Users\Michal\Workspace\github\SilentNotes\bin\VanillaCloudStorageClientTest\netcoreapp2.1\VanillaCloudStorageClientTest.dll" adapterTypeName="executor://nunit3testexecutor/" className="VanillaCloudStorageClientTest.CloudStorageTokenTest" name="SetExpiryDateBySecondsWorksWithNull" />
|
||||
</UnitTest>
|
||||
<UnitTest name="EncryptBeforeSerializationRespectsNullProperties" storage="c:\users\michal\workspace\github\silentnotes\bin\vanillacloudstorageclienttest\netcoreapp2.1\vanillacloudstorageclienttest.dll" id="ad676737-0a35-dba6-3ba9-cec823374fda">
|
||||
<Execution id="585b5a0f-9271-46a1-b8c3-0dae87316e94" />
|
||||
<TestMethod codeBase="C:\Users\Michal\Workspace\github\SilentNotes\bin\VanillaCloudStorageClientTest\netcoreapp2.1\VanillaCloudStorageClientTest.dll" adapterTypeName="executor://nunit3testexecutor/" className="VanillaCloudStorageClientTest.SerializeableCloudStorageCredentialsTest" name="EncryptBeforeSerializationRespectsNullProperties" />
|
||||
</UnitTest>
|
||||
<UnitTest name="CorrectlyConvertsSecureStringToString" storage="c:\users\michal\workspace\github\silentnotes\bin\vanillacloudstorageclienttest\netcoreapp2.1\vanillacloudstorageclienttest.dll" id="72ed0c35-21ea-7829-893f-73c9214b4f4a">
|
||||
<Execution id="fa2b22e8-c121-4f97-8849-4cbe45734f9f" />
|
||||
<TestMethod codeBase="C:\Users\Michal\Workspace\github\SilentNotes\bin\VanillaCloudStorageClientTest\netcoreapp2.1\VanillaCloudStorageClientTest.dll" adapterTypeName="executor://nunit3testexecutor/" className="VanillaCloudStorageClientTest.SecureStringExtensionsTest" name="CorrectlyConvertsSecureStringToString" />
|
||||
</UnitTest>
|
||||
<UnitTest name="SerializedJsonDoesNotContainPlaintextData" storage="c:\users\michal\workspace\github\silentnotes\bin\vanillacloudstorageclienttest\netcoreapp2.1\vanillacloudstorageclienttest.dll" id="49ceb249-d1ca-f3dc-41f8-28a41637f4d7">
|
||||
<Execution id="4401f9ea-5a99-4275-a333-18655e9517ce" />
|
||||
<TestMethod codeBase="C:\Users\Michal\Workspace\github\SilentNotes\bin\VanillaCloudStorageClientTest\netcoreapp2.1\VanillaCloudStorageClientTest.dll" adapterTypeName="executor://nunit3testexecutor/" className="VanillaCloudStorageClientTest.SerializeableCloudStorageCredentialsTest" name="SerializedJsonDoesNotContainPlaintextData" />
|
||||
</UnitTest>
|
||||
<UnitTest name="FetchTokenReturnsNullForDeniedAccess" storage="c:\users\michal\workspace\github\silentnotes\bin\vanillacloudstorageclienttest\netcoreapp2.1\vanillacloudstorageclienttest.dll" id="a500e09e-b66a-a804-eaae-a237a3b689b9">
|
||||
<Execution id="e0f60156-4a28-4d04-8336-040ffe215e8f" />
|
||||
<TestMethod codeBase="C:\Users\Michal\Workspace\github\SilentNotes\bin\VanillaCloudStorageClientTest\netcoreapp2.1\VanillaCloudStorageClientTest.dll" adapterTypeName="executor://nunit3testexecutor/" className="VanillaCloudStorageClientTest.OAuth2CloudStorageClientTest" name="FetchTokenReturnsNullForDeniedAccess" />
|
||||
</UnitTest>
|
||||
<UnitTest name="ThrowsWithInvalidPassword" storage="c:\users\michal\workspace\github\silentnotes\bin\vanillacloudstorageclienttest\netcoreapp2.1\vanillacloudstorageclienttest.dll" id="7cfb656b-616e-5dab-c649-021521679abb">
|
||||
<Execution id="8c79c5a4-5298-40ae-95b7-546701afd83a" />
|
||||
<TestMethod codeBase="C:\Users\Michal\Workspace\github\SilentNotes\bin\VanillaCloudStorageClientTest\netcoreapp2.1\VanillaCloudStorageClientTest.dll" adapterTypeName="executor://nunit3testexecutor/" className="VanillaCloudStorageClientTest.CloudStorageProviders.FtpCloudStorageClientTest" name="ThrowsWithInvalidPassword" />
|
||||
</UnitTest>
|
||||
<UnitTest name="CorrectlyConvertsSecureStringToUtf8Bytes" storage="c:\users\michal\workspace\github\silentnotes\bin\vanillacloudstorageclienttest\netcoreapp2.1\vanillacloudstorageclienttest.dll" id="06eb9298-0f08-8297-1ae0-b93dff5bc18d">
|
||||
<Execution id="119bdc21-2d3d-4ce0-bed8-1dfe806a6450" />
|
||||
<TestMethod codeBase="C:\Users\Michal\Workspace\github\SilentNotes\bin\VanillaCloudStorageClientTest\netcoreapp2.1\VanillaCloudStorageClientTest.dll" adapterTypeName="executor://nunit3testexecutor/" className="VanillaCloudStorageClientTest.SecureStringExtensionsTest" name="CorrectlyConvertsSecureStringToUtf8Bytes" />
|
||||
</UnitTest>
|
||||
<UnitTest name="ValidateAcceptsValidCredentials" storage="c:\users\michal\workspace\github\silentnotes\bin\vanillacloudstorageclienttest\netcoreapp2.1\vanillacloudstorageclienttest.dll" id="034a71d4-f7f9-43e6-fc0a-59a23ef2cd9b">
|
||||
<Execution id="f33ac19b-8781-4127-a232-7c7a2e6d6c32" />
|
||||
<TestMethod codeBase="C:\Users\Michal\Workspace\github\SilentNotes\bin\VanillaCloudStorageClientTest\netcoreapp2.1\VanillaCloudStorageClientTest.dll" adapterTypeName="executor://nunit3testexecutor/" className="VanillaCloudStorageClientTest.CloudStorageCredentialsTest" name="ValidateAcceptsValidCredentials" />
|
||||
</UnitTest>
|
||||
<UnitTest name="SerializedDatacontractDoesNotContainNullProperties" storage="c:\users\michal\workspace\github\silentnotes\bin\vanillacloudstorageclienttest\netcoreapp2.1\vanillacloudstorageclienttest.dll" id="fbed828f-38a9-0e13-af25-e507fd37c36e">
|
||||
<Execution id="60e6f439-58a9-40ac-b6f1-8120f2f04c87" />
|
||||
<TestMethod codeBase="C:\Users\Michal\Workspace\github\SilentNotes\bin\VanillaCloudStorageClientTest\netcoreapp2.1\VanillaCloudStorageClientTest.dll" adapterTypeName="executor://nunit3testexecutor/" className="VanillaCloudStorageClientTest.SerializeableCloudStorageCredentialsTest" name="SerializedDatacontractDoesNotContainNullProperties" />
|
||||
</UnitTest>
|
||||
<UnitTest name="ParseRealWorldDropboxSuccessResponse" storage="c:\users\michal\workspace\github\silentnotes\bin\vanillacloudstorageclienttest\netcoreapp2.1\vanillacloudstorageclienttest.dll" id="6d6d9696-e968-4583-999f-f73ff1b5b40e">
|
||||
<Execution id="b4b53ef3-c8be-4bcd-8ec3-84fef1e42440" />
|
||||
<TestMethod codeBase="C:\Users\Michal\Workspace\github\SilentNotes\bin\VanillaCloudStorageClientTest\netcoreapp2.1\VanillaCloudStorageClientTest.dll" adapterTypeName="executor://nunit3testexecutor/" className="VanillaCloudStorageClientTest.OAuth2.OAuth2UtilsTest" name="ParseRealWorldDropboxSuccessResponse" />
|
||||
</UnitTest>
|
||||
<UnitTest name="SanitizeCredentials_ChangesInvalidPrefix" storage="c:\users\michal\workspace\github\silentnotes\bin\vanillacloudstorageclienttest\netcoreapp2.1\vanillacloudstorageclienttest.dll" id="ebe21dff-4309-2b2e-75d7-dd55a44ce033">
|
||||
<Execution id="208fc10c-948d-4641-b459-a3249b341dcb" />
|
||||
<TestMethod codeBase="C:\Users\Michal\Workspace\github\SilentNotes\bin\VanillaCloudStorageClientTest\netcoreapp2.1\VanillaCloudStorageClientTest.dll" adapterTypeName="executor://nunit3testexecutor/" className="VanillaCloudStorageClientTest.CloudStorageProviders.FtpCloudStorageClientTest" name="SanitizeCredentials_ChangesInvalidPrefix" />
|
||||
</UnitTest>
|
||||
<UnitTest name="AreEqualWorksWithNullDate" storage="c:\users\michal\workspace\github\silentnotes\bin\vanillacloudstorageclienttest\netcoreapp2.1\vanillacloudstorageclienttest.dll" id="60635b8d-24f2-11d2-6983-d8dee19f4282">
|
||||
<Execution id="913d29d6-2c2e-4fbe-9c8f-d98ee5b00423" />
|
||||
<TestMethod codeBase="C:\Users\Michal\Workspace\github\SilentNotes\bin\VanillaCloudStorageClientTest\netcoreapp2.1\VanillaCloudStorageClientTest.dll" adapterTypeName="executor://nunit3testexecutor/" className="VanillaCloudStorageClientTest.CloudStorageTokenTest" name="AreEqualWorksWithNullDate" />
|
||||
</UnitTest>
|
||||
<UnitTest name="DecryptAfterDesrializationRespectsNullProperties" storage="c:\users\michal\workspace\github\silentnotes\bin\vanillacloudstorageclienttest\netcoreapp2.1\vanillacloudstorageclienttest.dll" id="f43fb36c-bb2f-88d6-fd89-bda7c22b6c91">
|
||||
<Execution id="a1f2867a-47fb-49db-901b-7114af3845bd" />
|
||||
<TestMethod codeBase="C:\Users\Michal\Workspace\github\SilentNotes\bin\VanillaCloudStorageClientTest\netcoreapp2.1\VanillaCloudStorageClientTest.dll" adapterTypeName="executor://nunit3testexecutor/" className="VanillaCloudStorageClientTest.SerializeableCloudStorageCredentialsTest" name="DecryptAfterDesrializationRespectsNullProperties" />
|
||||
</UnitTest>
|
||||
<UnitTest name="NeedsRefreshReturnsTrueIfNoExpirationDate" storage="c:\users\michal\workspace\github\silentnotes\bin\vanillacloudstorageclienttest\netcoreapp2.1\vanillacloudstorageclienttest.dll" id="537e4579-87e2-7283-ca3f-eb8ddb93ae39">
|
||||
<Execution id="f48f72ef-ec73-4839-b314-7d22a3cfec69" />
|
||||
<TestMethod codeBase="C:\Users\Michal\Workspace\github\SilentNotes\bin\VanillaCloudStorageClientTest\netcoreapp2.1\VanillaCloudStorageClientTest.dll" adapterTypeName="executor://nunit3testexecutor/" className="VanillaCloudStorageClientTest.CloudStorageTokenTest" name="NeedsRefreshReturnsTrueIfNoExpirationDate" />
|
||||
</UnitTest>
|
||||
<UnitTest name="FileLifecycleWorks" storage="c:\users\michal\workspace\github\silentnotes\bin\vanillacloudstorageclienttest\netcoreapp2.1\vanillacloudstorageclienttest.dll" id="3fa575d3-8c64-4e79-fa65-acc9170b3c5a">
|
||||
<Execution id="4536485e-ee25-4d61-9353-14a984535b8e" />
|
||||
<TestMethod codeBase="C:\Users\Michal\Workspace\github\SilentNotes\bin\VanillaCloudStorageClientTest\netcoreapp2.1\VanillaCloudStorageClientTest.dll" adapterTypeName="executor://nunit3testexecutor/" className="VanillaCloudStorageClientTest.CloudStorageProviders.GoogleCloudStorageClientTest" name="FileLifecycleWorks" />
|
||||
</UnitTest>
|
||||
<UnitTest name="SerializedXmlCanBeReadBack" storage="c:\users\michal\workspace\github\silentnotes\bin\vanillacloudstorageclienttest\netcoreapp2.1\vanillacloudstorageclienttest.dll" id="dba5c72e-5a00-8132-c3c9-ae0e981adf72">
|
||||
<Execution id="4652ec4f-b2e8-4f57-8608-da377196ffda" />
|
||||
<TestMethod codeBase="C:\Users\Michal\Workspace\github\SilentNotes\bin\VanillaCloudStorageClientTest\netcoreapp2.1\VanillaCloudStorageClientTest.dll" adapterTypeName="executor://nunit3testexecutor/" className="VanillaCloudStorageClientTest.SerializeableCloudStorageCredentialsTest" name="SerializedXmlCanBeReadBack" />
|
||||
</UnitTest>
|
||||
<UnitTest name="NeedsRefreshReturnsFalseForTokenFlow" storage="c:\users\michal\workspace\github\silentnotes\bin\vanillacloudstorageclienttest\netcoreapp2.1\vanillacloudstorageclienttest.dll" id="ebbd2ea6-e642-f74f-abc0-f79e1e19896c">
|
||||
<Execution id="29177f57-4100-4d14-9def-92aee48433ab" />
|
||||
<TestMethod codeBase="C:\Users\Michal\Workspace\github\SilentNotes\bin\VanillaCloudStorageClientTest\netcoreapp2.1\VanillaCloudStorageClientTest.dll" adapterTypeName="executor://nunit3testexecutor/" className="VanillaCloudStorageClientTest.CloudStorageTokenTest" name="NeedsRefreshReturnsFalseForTokenFlow" />
|
||||
</UnitTest>
|
||||
<UnitTest name="ThrowsWithInvalidPath" storage="c:\users\michal\workspace\github\silentnotes\bin\vanillacloudstorageclienttest\netcoreapp2.1\vanillacloudstorageclienttest.dll" id="c04d2194-9d0c-6f49-84c9-4d2691f2d076">
|
||||
<Execution id="a56e0451-e540-43ee-b30c-1948a059cbe7" />
|
||||
<TestMethod codeBase="C:\Users\Michal\Workspace\github\SilentNotes\bin\VanillaCloudStorageClientTest\netcoreapp2.1\VanillaCloudStorageClientTest.dll" adapterTypeName="executor://nunit3testexecutor/" className="VanillaCloudStorageClientTest.CloudStorageProviders.WebdavCloudStorageClientTest" name="ThrowsWithInvalidPath" />
|
||||
</UnitTest>
|
||||
<UnitTest name="ParseStratoWebdavResponseCorrectly" storage="c:\users\michal\workspace\github\silentnotes\bin\vanillacloudstorageclienttest\netcoreapp2.1\vanillacloudstorageclienttest.dll" id="e740f944-23a8-ca0e-606c-a36651ed4b4f">
|
||||
<Execution id="998a6ba8-0502-4c0f-8ca8-f4ee77326d18" />
|
||||
<TestMethod codeBase="C:\Users\Michal\Workspace\github\SilentNotes\bin\VanillaCloudStorageClientTest\netcoreapp2.1\VanillaCloudStorageClientTest.dll" adapterTypeName="executor://nunit3testexecutor/" className="VanillaCloudStorageClientTest.CloudStorageProviders.WebdavCloudStorageClientTest" name="ParseStratoWebdavResponseCorrectly" />
|
||||
</UnitTest>
|
||||
<UnitTest name="ChoosesCorrectUrlForGmxComEmail" storage="c:\users\michal\workspace\github\silentnotes\bin\vanillacloudstorageclienttest\netcoreapp2.1\vanillacloudstorageclienttest.dll" id="e9788947-b431-c470-eb25-13f39858c423">
|
||||
<Execution id="1c925dd1-edfa-46f1-8b9b-d9ce8cbf2635" />
|
||||
<TestMethod codeBase="C:\Users\Michal\Workspace\github\SilentNotes\bin\VanillaCloudStorageClientTest\netcoreapp2.1\VanillaCloudStorageClientTest.dll" adapterTypeName="executor://nunit3testexecutor/" className="VanillaCloudStorageClientTest.CloudStorageProviders.GmxCloudStorageClientTest" name="ChoosesCorrectUrlForGmxComEmail" />
|
||||
</UnitTest>
|
||||
<UnitTest name="FileLifecycleWorks" storage="c:\users\michal\workspace\github\silentnotes\bin\vanillacloudstorageclienttest\netcoreapp2.1\vanillacloudstorageclienttest.dll" id="78fb2759-932d-72a7-9e7e-ac929f17aa89">
|
||||
<Execution id="4646c279-d3ea-4c5f-8d7e-bc474dff36a0" />
|
||||
<TestMethod codeBase="C:\Users\Michal\Workspace\github\SilentNotes\bin\VanillaCloudStorageClientTest\netcoreapp2.1\VanillaCloudStorageClientTest.dll" adapterTypeName="executor://nunit3testexecutor/" className="VanillaCloudStorageClientTest.CloudStorageProviders.DropboxCloudStorageClientTest" name="FileLifecycleWorks" />
|
||||
</UnitTest>
|
||||
<UnitTest name="NeedsRefreshReturnsFalseIfNotExpired" storage="c:\users\michal\workspace\github\silentnotes\bin\vanillacloudstorageclienttest\netcoreapp2.1\vanillacloudstorageclienttest.dll" id="fa59d18c-2c0d-3f7a-7b89-8b05c8530c98">
|
||||
<Execution id="8a597631-5dd4-4119-a2e8-c86478191d1e" />
|
||||
<TestMethod codeBase="C:\Users\Michal\Workspace\github\SilentNotes\bin\VanillaCloudStorageClientTest\netcoreapp2.1\VanillaCloudStorageClientTest.dll" adapterTypeName="executor://nunit3testexecutor/" className="VanillaCloudStorageClientTest.CloudStorageTokenTest" name="NeedsRefreshReturnsFalseIfNotExpired" />
|
||||
</UnitTest>
|
||||
<UnitTest name="ParseRealWorldGoogleRejectResponse" storage="c:\users\michal\workspace\github\silentnotes\bin\vanillacloudstorageclienttest\netcoreapp2.1\vanillacloudstorageclienttest.dll" id="4f4c9855-a72a-565f-2470-2a0c650d1bed">
|
||||
<Execution id="323ec250-debb-4974-a77c-b2e462205ee5" />
|
||||
<TestMethod codeBase="C:\Users\Michal\Workspace\github\SilentNotes\bin\VanillaCloudStorageClientTest\netcoreapp2.1\VanillaCloudStorageClientTest.dll" adapterTypeName="executor://nunit3testexecutor/" className="VanillaCloudStorageClientTest.OAuth2.OAuth2UtilsTest" name="ParseRealWorldGoogleRejectResponse" />
|
||||
</UnitTest>
|
||||
</TestDefinitions>
|
||||
<TestEntries>
|
||||
<TestEntry testId="a500e09e-b66a-a804-eaae-a237a3b689b9" executionId="e0f60156-4a28-4d04-8336-040ffe215e8f" testListId="8c84fa94-04c1-424b-9868-57a2d4851a1d" />
|
||||
<TestEntry testId="49ceb249-d1ca-f3dc-41f8-28a41637f4d7" executionId="4401f9ea-5a99-4275-a333-18655e9517ce" testListId="8c84fa94-04c1-424b-9868-57a2d4851a1d" />
|
||||
<TestEntry testId="5dab3a75-ff5f-1e46-20cf-bc072154bb33" executionId="83d32025-8d5e-4a58-92b3-e797e4ea3bfa" testListId="8c84fa94-04c1-424b-9868-57a2d4851a1d" />
|
||||
<TestEntry testId="89dd1b67-c0ca-dcc6-ca42-c4f3660c0208" executionId="7c73d2a6-34a5-400d-8163-40375210062f" testListId="8c84fa94-04c1-424b-9868-57a2d4851a1d" />
|
||||
<TestEntry testId="916a4c11-6ebe-26db-3769-b9df2051743c" executionId="cd601b6c-919f-4585-b5e6-d220a0ba17be" testListId="8c84fa94-04c1-424b-9868-57a2d4851a1d" />
|
||||
<TestEntry testId="034a71d4-f7f9-43e6-fc0a-59a23ef2cd9b" executionId="f33ac19b-8781-4127-a232-7c7a2e6d6c32" testListId="8c84fa94-04c1-424b-9868-57a2d4851a1d" />
|
||||
<TestEntry testId="f7c94d67-56c9-6418-8a42-ddc79dc57ea2" executionId="ddc1f371-da00-4b39-bc51-e4467d1f519d" testListId="8c84fa94-04c1-424b-9868-57a2d4851a1d" />
|
||||
<TestEntry testId="6d6d9696-e968-4583-999f-f73ff1b5b40e" executionId="b4b53ef3-c8be-4bcd-8ec3-84fef1e42440" testListId="8c84fa94-04c1-424b-9868-57a2d4851a1d" />
|
||||
<TestEntry testId="275ce8fa-d4c1-63f1-9add-641a70fb73e6" executionId="e7b019dd-c6ee-40b6-91d9-c7f4bfb03f55" testListId="8c84fa94-04c1-424b-9868-57a2d4851a1d" />
|
||||
<TestEntry testId="fbed828f-38a9-0e13-af25-e507fd37c36e" executionId="60e6f439-58a9-40ac-b6f1-8120f2f04c87" testListId="8c84fa94-04c1-424b-9868-57a2d4851a1d" />
|
||||
<TestEntry testId="cc085a0d-1f67-be85-d187-865a89737f10" executionId="705cbcf0-24cb-427d-848e-ed2970b0ab58" testListId="8c84fa94-04c1-424b-9868-57a2d4851a1d" />
|
||||
<TestEntry testId="4340b799-0666-32b6-4fdd-1daf8a626bc7" executionId="a9e342c2-bc62-4b01-835b-842bec9f2d4c" testListId="8c84fa94-04c1-424b-9868-57a2d4851a1d" />
|
||||
<TestEntry testId="75ed4b0d-8eff-6a45-b5e4-0db6070c60bb" executionId="8073954d-cee8-455e-a86d-97e8a4ec614d" testListId="8c84fa94-04c1-424b-9868-57a2d4851a1d" />
|
||||
<TestEntry testId="28e75f1f-48b9-972a-3113-38add5d40440" executionId="df1e2af3-79ce-4ddc-87e9-aaee93bb557b" testListId="8c84fa94-04c1-424b-9868-57a2d4851a1d" />
|
||||
<TestEntry testId="e740f944-23a8-ca0e-606c-a36651ed4b4f" executionId="998a6ba8-0502-4c0f-8ca8-f4ee77326d18" testListId="8c84fa94-04c1-424b-9868-57a2d4851a1d" />
|
||||
<TestEntry testId="767acdfc-0e73-c887-803e-31c8aaa97dde" executionId="ea83c2aa-3b60-4ddc-bc14-f7e8c0f4cc2a" testListId="8c84fa94-04c1-424b-9868-57a2d4851a1d" />
|
||||
<TestEntry testId="ca777d22-3b0f-e952-bd8a-c5660245a81f" executionId="99ffb4ca-843c-48e2-ba37-90424746c53f" testListId="8c84fa94-04c1-424b-9868-57a2d4851a1d" />
|
||||
<TestEntry testId="fa59d18c-2c0d-3f7a-7b89-8b05c8530c98" executionId="8a597631-5dd4-4119-a2e8-c86478191d1e" testListId="8c84fa94-04c1-424b-9868-57a2d4851a1d" />
|
||||
<TestEntry testId="61b1c53a-6b35-a0bd-cf9f-996f45b4c761" executionId="502e3c21-4407-4b5a-85ff-ed1eb355da72" testListId="8c84fa94-04c1-424b-9868-57a2d4851a1d" />
|
||||
<TestEntry testId="736ef283-7bdf-6b3e-0caf-6c21f948cdc6" executionId="1804b7c8-7729-426c-91d9-691ce82a1d7a" testListId="8c84fa94-04c1-424b-9868-57a2d4851a1d" />
|
||||
<TestEntry testId="49a69aa8-9346-0600-d464-81784b9e612b" executionId="6234ffeb-0f16-4775-9eb0-759232f07cb4" testListId="8c84fa94-04c1-424b-9868-57a2d4851a1d" />
|
||||
<TestEntry testId="c04d2194-9d0c-6f49-84c9-4d2691f2d076" executionId="a56e0451-e540-43ee-b30c-1948a059cbe7" testListId="8c84fa94-04c1-424b-9868-57a2d4851a1d" />
|
||||
<TestEntry testId="50701c3a-d1b9-0423-26e6-4be52cf1d5f0" executionId="0e32eb27-9a2c-497d-8d96-4852e04f9247" testListId="8c84fa94-04c1-424b-9868-57a2d4851a1d" />
|
||||
<TestEntry testId="ebe21dff-4309-2b2e-75d7-dd55a44ce033" executionId="208fc10c-948d-4641-b459-a3249b341dcb" testListId="8c84fa94-04c1-424b-9868-57a2d4851a1d" />
|
||||
<TestEntry testId="4af5858f-3f1a-a886-5596-87475d64aeb3" executionId="7660f5b8-b4fa-4388-9118-e136c6490dd8" testListId="8c84fa94-04c1-424b-9868-57a2d4851a1d" />
|
||||
<TestEntry testId="537e4579-87e2-7283-ca3f-eb8ddb93ae39" executionId="f48f72ef-ec73-4839-b314-7d22a3cfec69" testListId="8c84fa94-04c1-424b-9868-57a2d4851a1d" />
|
||||
<TestEntry testId="89e1d4aa-9217-7c34-fc4d-99ef9efe7a7d" executionId="0a807015-4876-4110-888e-ba37dfcce38a" testListId="8c84fa94-04c1-424b-9868-57a2d4851a1d" />
|
||||
<TestEntry testId="e22320ba-05cc-579d-8c7d-c693d9b6406e" executionId="426d15ea-cd3e-4e87-8e2a-14502afbd98f" testListId="8c84fa94-04c1-424b-9868-57a2d4851a1d" />
|
||||
<TestEntry testId="d941f923-cd04-ee0a-427c-b81e14aafa3d" executionId="093b7fc9-4477-4bcf-9443-6cc760333b4a" testListId="8c84fa94-04c1-424b-9868-57a2d4851a1d" />
|
||||
<TestEntry testId="5fa805b8-ec79-3c7c-8e87-3db6dc58f83e" executionId="06a2ec7f-dc87-4ee9-8394-fd650312a2ab" testListId="8c84fa94-04c1-424b-9868-57a2d4851a1d" />
|
||||
<TestEntry testId="9da3226a-a96e-91f6-c5b6-b3102b5b332a" executionId="01ecb439-d050-4ac9-95c9-a7378091bcc5" testListId="8c84fa94-04c1-424b-9868-57a2d4851a1d" />
|
||||
<TestEntry testId="a4f5c6bf-c950-cfa4-1f50-3ce62d833293" executionId="5e0c0e75-9fc9-40ce-ba0a-9c2a0887bdac" testListId="8c84fa94-04c1-424b-9868-57a2d4851a1d" />
|
||||
<TestEntry testId="819198e9-75c1-9681-32e4-669dfa258e8a" executionId="14edf9a2-4d91-4d49-bbee-0400d51f8950" testListId="8c84fa94-04c1-424b-9868-57a2d4851a1d" />
|
||||
<TestEntry testId="a436d607-b2be-f301-d56f-50716e7b321a" executionId="52fca9fd-4e45-4f44-9857-f267268b0924" testListId="8c84fa94-04c1-424b-9868-57a2d4851a1d" />
|
||||
<TestEntry testId="64d76ddb-a88f-9c22-6ed0-af3ecb98ffb9" executionId="aa3eef6e-4555-49bd-a1fa-ef6f663a5d22" testListId="8c84fa94-04c1-424b-9868-57a2d4851a1d" />
|
||||
<TestEntry testId="c6bece37-31ea-7f18-10f5-6b96a09f4154" executionId="cd51e1e5-acf8-4a63-a556-0dfd4d99b491" testListId="8c84fa94-04c1-424b-9868-57a2d4851a1d" />
|
||||
<TestEntry testId="72ed0c35-21ea-7829-893f-73c9214b4f4a" executionId="fa2b22e8-c121-4f97-8849-4cbe45734f9f" testListId="8c84fa94-04c1-424b-9868-57a2d4851a1d" />
|
||||
<TestEntry testId="ad03a66d-a9e8-9ade-31df-92fa6cac714b" executionId="0c9508da-1207-4eb3-891c-e66e5e768788" testListId="8c84fa94-04c1-424b-9868-57a2d4851a1d" />
|
||||
<TestEntry testId="e9788947-b431-c470-eb25-13f39858c423" executionId="1c925dd1-edfa-46f1-8b9b-d9ce8cbf2635" testListId="8c84fa94-04c1-424b-9868-57a2d4851a1d" />
|
||||
<TestEntry testId="b251efa4-be1f-5ed7-99ba-5339059780ec" executionId="80c55db9-4d42-4fd2-a48c-22ad4cd39105" testListId="8c84fa94-04c1-424b-9868-57a2d4851a1d" />
|
||||
<TestEntry testId="22de815b-16af-03c5-d819-7c8851c1da3c" executionId="1624ee85-3987-47af-9822-074bcbca9106" testListId="8c84fa94-04c1-424b-9868-57a2d4851a1d" />
|
||||
<TestEntry testId="c262190d-9c9e-6be3-5e5d-634c12813410" executionId="ed88606c-3b41-49bc-ae3f-f226d9464261" testListId="8c84fa94-04c1-424b-9868-57a2d4851a1d" />
|
||||
<TestEntry testId="951f28a9-26ae-8567-a07e-eef0e1def226" executionId="414673ca-5d78-4202-842b-7f13e7b40f2b" testListId="8c84fa94-04c1-424b-9868-57a2d4851a1d" />
|
||||
<TestEntry testId="f43fb36c-bb2f-88d6-fd89-bda7c22b6c91" executionId="a1f2867a-47fb-49db-901b-7114af3845bd" testListId="8c84fa94-04c1-424b-9868-57a2d4851a1d" />
|
||||
<TestEntry testId="2281e288-4c7c-bbf6-5b39-72098edf13cc" executionId="30222c71-5fd6-48d2-ac28-fcd942c4ed39" testListId="8c84fa94-04c1-424b-9868-57a2d4851a1d" />
|
||||
<TestEntry testId="13e39882-2195-72c3-053f-9cff2ec1d67d" executionId="ed9923ba-9af6-4558-b34e-f49eb0456eff" testListId="8c84fa94-04c1-424b-9868-57a2d4851a1d" />
|
||||
<TestEntry testId="30bd1939-4032-847c-f269-bb1757915f16" executionId="0d72415d-fdfd-4cc2-b812-74abc7818f4e" testListId="8c84fa94-04c1-424b-9868-57a2d4851a1d" />
|
||||
<TestEntry testId="432b7e9a-53e9-d7c7-531a-b22f10d8a0f5" executionId="5fbd98cc-68bb-4536-8a46-43b979e213a6" testListId="8c84fa94-04c1-424b-9868-57a2d4851a1d" />
|
||||
<TestEntry testId="ebbd2ea6-e642-f74f-abc0-f79e1e19896c" executionId="29177f57-4100-4d14-9def-92aee48433ab" testListId="8c84fa94-04c1-424b-9868-57a2d4851a1d" />
|
||||
<TestEntry testId="3640390a-9ea3-e873-ecaf-b1f0acce39dc" executionId="0d4f644d-4bfc-49e5-9983-56d071104b86" testListId="8c84fa94-04c1-424b-9868-57a2d4851a1d" />
|
||||
<TestEntry testId="de4ced25-0268-f393-cea0-bb04d4c5a29e" executionId="6f544caa-1014-485e-95b2-60c343c818cb" testListId="8c84fa94-04c1-424b-9868-57a2d4851a1d" />
|
||||
<TestEntry testId="e684ae1a-ebd6-8708-4f88-d018712c6d26" executionId="4c6f6322-a4c6-4738-b068-1baf9c286a03" testListId="8c84fa94-04c1-424b-9868-57a2d4851a1d" />
|
||||
<TestEntry testId="3fa575d3-8c64-4e79-fa65-acc9170b3c5a" executionId="4536485e-ee25-4d61-9353-14a984535b8e" testListId="8c84fa94-04c1-424b-9868-57a2d4851a1d" />
|
||||
<TestEntry testId="5d03904b-0ce2-14e9-560e-6097c6faa283" executionId="5c34792d-1eb8-4798-b9f5-a37a5601d982" testListId="8c84fa94-04c1-424b-9868-57a2d4851a1d" />
|
||||
<TestEntry testId="be9e3070-8b2d-4cc8-2595-fb57d16c6cdd" executionId="b2c31d72-0f6f-4fd3-aadf-519c526ba627" testListId="8c84fa94-04c1-424b-9868-57a2d4851a1d" />
|
||||
<TestEntry testId="176fe880-e16d-469b-88c8-2560bc54254b" executionId="0b40b822-b7ff-400e-8c5b-26717502ad01" testListId="8c84fa94-04c1-424b-9868-57a2d4851a1d" />
|
||||
<TestEntry testId="11d38d36-4090-e9ae-0dfe-52c8ffa930a6" executionId="0e832195-44c2-41d5-931b-fa2dc4d4655f" testListId="8c84fa94-04c1-424b-9868-57a2d4851a1d" />
|
||||
<TestEntry testId="e3bf520c-cf79-f90b-dc21-9c25e58a369d" executionId="ca75b323-cd43-4a26-9e6f-fa3650cc9eca" testListId="8c84fa94-04c1-424b-9868-57a2d4851a1d" />
|
||||
<TestEntry testId="ce42ac62-8706-8922-cf93-ac01f045e42d" executionId="eeeeda37-81c3-4432-93c3-6197cc86aec4" testListId="8c84fa94-04c1-424b-9868-57a2d4851a1d" />
|
||||
<TestEntry testId="da7235ad-2f42-43de-0593-6a35cf28a618" executionId="a036e7ee-f4ac-442d-827c-9c1103d6fd35" testListId="8c84fa94-04c1-424b-9868-57a2d4851a1d" />
|
||||
<TestEntry testId="78fb2759-932d-72a7-9e7e-ac929f17aa89" executionId="4646c279-d3ea-4c5f-8d7e-bc474dff36a0" testListId="8c84fa94-04c1-424b-9868-57a2d4851a1d" />
|
||||
<TestEntry testId="4f4c9855-a72a-565f-2470-2a0c650d1bed" executionId="323ec250-debb-4974-a77c-b2e462205ee5" testListId="8c84fa94-04c1-424b-9868-57a2d4851a1d" />
|
||||
<TestEntry testId="36be699c-4582-1e8a-20db-4c133825364b" executionId="689b6dee-0717-4c98-8311-8209865a4f64" testListId="8c84fa94-04c1-424b-9868-57a2d4851a1d" />
|
||||
<TestEntry testId="a9a707d5-0f10-eedc-d978-b6a36a0c8856" executionId="bb6db51d-b3b6-4e49-aa85-191ae39f1037" testListId="8c84fa94-04c1-424b-9868-57a2d4851a1d" />
|
||||
<TestEntry testId="38cf86d6-f477-94c5-ae5a-bfe5908ca917" executionId="17bf26a1-1224-4ece-91b3-c22a23c8aabd" testListId="8c84fa94-04c1-424b-9868-57a2d4851a1d" />
|
||||
<TestEntry testId="c6442343-bfe7-0dd6-2de0-bf97d26d89ba" executionId="aa9960ae-203a-4e06-8fa5-72221f1f76ae" testListId="8c84fa94-04c1-424b-9868-57a2d4851a1d" />
|
||||
<TestEntry testId="df7f153f-97b0-b127-aad8-16ec21c92a8b" executionId="cadbf9fb-9bfe-4193-9efa-cc02a33a13bd" testListId="8c84fa94-04c1-424b-9868-57a2d4851a1d" />
|
||||
<TestEntry testId="c62f7f2c-529c-dc57-520f-bbd68be945a7" executionId="94dd40b9-b1ce-470c-8c0e-f6bbaa100a54" testListId="8c84fa94-04c1-424b-9868-57a2d4851a1d" />
|
||||
<TestEntry testId="8a4a2c3a-671a-6167-0ea9-afbf6f12c47f" executionId="1bb8b762-a68d-4341-b1de-7e6f835a0711" testListId="8c84fa94-04c1-424b-9868-57a2d4851a1d" />
|
||||
<TestEntry testId="ad676737-0a35-dba6-3ba9-cec823374fda" executionId="585b5a0f-9271-46a1-b8c3-0dae87316e94" testListId="8c84fa94-04c1-424b-9868-57a2d4851a1d" />
|
||||
<TestEntry testId="7cfb656b-616e-5dab-c649-021521679abb" executionId="8c79c5a4-5298-40ae-95b7-546701afd83a" testListId="8c84fa94-04c1-424b-9868-57a2d4851a1d" />
|
||||
<TestEntry testId="ab91e3c1-6d51-74c8-f790-8c37d82e665d" executionId="2a90bce3-7856-4e93-b710-ca7c3ce5b3dc" testListId="8c84fa94-04c1-424b-9868-57a2d4851a1d" />
|
||||
<TestEntry testId="60635b8d-24f2-11d2-6983-d8dee19f4282" executionId="913d29d6-2c2e-4fbe-9c8f-d98ee5b00423" testListId="8c84fa94-04c1-424b-9868-57a2d4851a1d" />
|
||||
<TestEntry testId="dba5c72e-5a00-8132-c3c9-ae0e981adf72" executionId="4652ec4f-b2e8-4f57-8608-da377196ffda" testListId="8c84fa94-04c1-424b-9868-57a2d4851a1d" />
|
||||
<TestEntry testId="c5f9094a-f978-a711-21dd-69c261de1b9a" executionId="b3a2df60-79e7-4182-940c-95c638007796" testListId="8c84fa94-04c1-424b-9868-57a2d4851a1d" />
|
||||
<TestEntry testId="06eb9298-0f08-8297-1ae0-b93dff5bc18d" executionId="119bdc21-2d3d-4ce0-bed8-1dfe806a6450" testListId="8c84fa94-04c1-424b-9868-57a2d4851a1d" />
|
||||
<TestEntry testId="1c366be0-e44e-8e31-b7f2-e17b393d6db3" executionId="dd41ab72-b415-46bf-aa6c-be2b038acc3a" testListId="8c84fa94-04c1-424b-9868-57a2d4851a1d" />
|
||||
<TestEntry testId="1bca23e2-1e33-fa8a-6cb7-6c20c96558d3" executionId="b6b90c5b-0b91-48b9-b160-eaae1740e609" testListId="8c84fa94-04c1-424b-9868-57a2d4851a1d" />
|
||||
<TestEntry testId="67ebdd70-ceee-6efa-b3eb-07b0cb165f16" executionId="f73fc410-415a-405e-89e2-9146b483ec2c" testListId="8c84fa94-04c1-424b-9868-57a2d4851a1d" />
|
||||
</TestEntries>
|
||||
<TestLists>
|
||||
<TestList name="Results Not in a List" id="8c84fa94-04c1-424b-9868-57a2d4851a1d" />
|
||||
<TestList name="All Loaded Results" id="19431567-8539-422a-85d7-44ee4e166bda" />
|
||||
</TestLists>
|
||||
<ResultSummary outcome="Completed">
|
||||
<Counters total="79" executed="67" passed="67" failed="0" error="0" timeout="0" aborted="0" inconclusive="0" passedButRunAborted="0" notRunnable="0" notExecuted="0" disconnected="0" warning="0" completed="0" inProgress="0" pending="0" />
|
||||
<Output>
|
||||
<StdOut>NUnit Adapter 3.17.0.0: Test execution started
|
||||
Running all tests in C:\Users\Michal\Workspace\github\SilentNotes\bin\VanillaCloudStorageClientTest\netcoreapp2.1\VanillaCloudStorageClientTest.dll
|
||||
NUnit3TestExecutor discovered 79 of 79 NUnit test cases
|
||||
ReallyDoFetchToken: Gets a real access-token
|
||||
ReallyDoOpenAuthorizationPageInBrowser: Opens the authorization page in the system browse, to get a real access-token
|
||||
Test 'ReallyDoFetchToken' was skipped in the test run.
|
||||
Test 'ReallyDoOpenAuthorizationPageInBrowser' was skipped in the test run.
|
||||
ReallyDoRefreshToken: Refreshes a real token
|
||||
ThrowsWithInvalidPassword: Too many consecutive fails seems to block an FTP server.
|
||||
ThrowsWithInvalidUrl: Too many consecutive fails seems to block an FTP server.
|
||||
ThrowsWithInvalidUsername: Too many consecutive fails seems to block an FTP server.
|
||||
Test 'ReallyDoRefreshToken' was skipped in the test run.
|
||||
Test 'ThrowsWithInvalidPassword' was skipped in the test run.
|
||||
Test 'ThrowsWithInvalidUrl' was skipped in the test run.
|
||||
Test 'ThrowsWithInvalidUsername' was skipped in the test run.
|
||||
ReallyDoFetchToken: Gets a real access-token
|
||||
ReallyDoOpenAuthorizationPageInBrowser: Opens the authorization page in the system browse, to get a real authorization-code
|
||||
ReallyDoRefreshToken: Refreshes a real token
|
||||
ReallyDoFetchToken: Gets a real access-token
|
||||
ReallyDoOpenAuthorizationPageInBrowser: Opens the authorization page in the system browse, to get a real authorization-code
|
||||
Test 'ReallyDoFetchToken' was skipped in the test run.
|
||||
Test 'ReallyDoOpenAuthorizationPageInBrowser' was skipped in the test run.
|
||||
Test 'ReallyDoRefreshToken' was skipped in the test run.
|
||||
Test 'ReallyDoFetchToken' was skipped in the test run.
|
||||
Test 'ReallyDoOpenAuthorizationPageInBrowser' was skipped in the test run.
|
||||
ReallyDoRefreshToken: Refreshes a real token
|
||||
Test 'ReallyDoRefreshToken' was skipped in the test run.
|
||||
NUnit Adapter 3.17.0.0: Test execution complete
|
||||
</StdOut>
|
||||
</Output>
|
||||
</ResultSummary>
|
||||
</TestRun>
|
||||
2
__tests__/fixtures/external/java/empty_failures.xml
vendored
Normal file
2
__tests__/fixtures/external/java/empty_failures.xml
vendored
Normal file
@@ -0,0 +1,2 @@
|
||||
<?xml version='1.0' encoding='utf-8'?>
|
||||
<testsuites name="my_package.test_foo" tests="3" failures="1" errors="0" time="6.79"><testsuite name="my_package.test_foo.launch_tests" tests="3" failures="1" errors="0" skipped="0" time="6.79"><testcase classname="my_package.TestFoo" name="test_normal_case" time="2.172" /><testcase classname="my_package.TestFoo" name="test_other_case" time="4.558"><failure message="Traceback (most recent call last): File "/home/redacted/test_foo.py", line 183, in test_other_case self.assertFalse(True) AssertionError: True is not false " /></testcase><testcase classname="my_package.TestFoo" name="test_yet_another_case" time="0.06" /></testsuite></testsuites>
|
||||
31
__tests__/fixtures/external/java/junit4-basic.xml
vendored
Normal file
31
__tests__/fixtures/external/java/junit4-basic.xml
vendored
Normal file
@@ -0,0 +1,31 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<!--
|
||||
This is a basic JUnit-style XML example to highlight the basis structure.
|
||||
|
||||
Example by Testmo. Copyright 2023 Testmo GmbH. All rights reserved.
|
||||
Testmo test management software - https://www.testmo.com/
|
||||
-->
|
||||
<testsuites time="15.682687">
|
||||
<testsuite name="Tests.Registration" time="6.605871">
|
||||
<testcase name="testCase1" classname="Tests.Registration" time="2.113871" />
|
||||
<testcase name="testCase2" classname="Tests.Registration" time="1.051" />
|
||||
<testcase name="testCase3" classname="Tests.Registration" time="3.441" />
|
||||
</testsuite>
|
||||
<testsuite name="Tests.Authentication" time="9.076816">
|
||||
<!-- Java JUni4 XML files does not nest <testsuite> elements -->
|
||||
<!--
|
||||
<testsuite name="Tests.Authentication.Login" time="4.356">
|
||||
<testcase name="testCase4" classname="Tests.Authentication.Login" time="2.244" />
|
||||
<testcase name="testCase5" classname="Tests.Authentication.Login" time="0.781" />
|
||||
<testcase name="testCase6" classname="Tests.Authentication.Login" time="1.331" />
|
||||
</testsuite>
|
||||
-->
|
||||
<testcase name="testCase7" classname="Tests.Authentication" time="2.508" />
|
||||
<testcase name="testCase8" classname="Tests.Authentication" time="1.230816" />
|
||||
<testcase name="testCase9" classname="Tests.Authentication" time="0.982">
|
||||
<failure message="Assertion error message" type="AssertionError">
|
||||
<!-- Call stack printed here -->
|
||||
</failure>
|
||||
</testcase>
|
||||
</testsuite>
|
||||
</testsuites>
|
||||
141
__tests__/fixtures/external/java/junit4-complete.xml
vendored
Normal file
141
__tests__/fixtures/external/java/junit4-complete.xml
vendored
Normal file
@@ -0,0 +1,141 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<!--
|
||||
This is a JUnit-style XML example with commonly used tags and attributes.
|
||||
|
||||
Example by Testmo. Copyright 2023 Testmo GmbH. All rights reserved.
|
||||
Testmo test management software - https://www.testmo.com/
|
||||
-->
|
||||
|
||||
<!-- <testsuites> Usually the root element of a JUnit XML file. Some tools leave out
|
||||
the <testsuites> element if there is only a single top-level <testsuite> element (which
|
||||
is then used as the root element).
|
||||
|
||||
name Name of the entire test run
|
||||
tests Total number of tests in this file
|
||||
failures Total number of failed tests in this file
|
||||
errors Total number of errored tests in this file
|
||||
skipped Total number of skipped tests in this file
|
||||
assertions Total number of assertions for all tests in this file
|
||||
time Aggregated time of all tests in this file in seconds
|
||||
timestamp Date and time of when the test run was executed (in ISO 8601 format)
|
||||
-->
|
||||
<testsuites name="Test run" tests="8" failures="1" errors="1" skipped="1"
|
||||
assertions="20" time="16.082687" timestamp="2021-04-02T15:48:23">
|
||||
|
||||
<!-- <testsuite> A test suite usually represents a class, folder or group of tests.
|
||||
There can be many test suites in an XML file, and there can be test suites under other
|
||||
test suites.
|
||||
|
||||
name Name of the test suite (e.g. class name or folder name)
|
||||
tests Total number of tests in this suite
|
||||
failures Total number of failed tests in this suite
|
||||
errors Total number of errored tests in this suite
|
||||
skipped Total number of skipped tests in this suite
|
||||
assertions Total number of assertions for all tests in this suite
|
||||
time Aggregated time of all tests in this file in seconds
|
||||
timestamp Date and time of when the test suite was executed (in ISO 8601 format)
|
||||
file Source code file of this test suite
|
||||
-->
|
||||
<testsuite name="Tests.Registration" tests="8" failures="1" errors="1" skipped="1"
|
||||
assertions="20" time="16.082687" timestamp="2021-04-02T15:48:23"
|
||||
file="tests/registration.code">
|
||||
|
||||
<!-- <properties> Test suites (and test cases, see below) can have additional
|
||||
properties such as environment variables or version numbers. -->
|
||||
<properties>
|
||||
<!-- <property> Each property has a name and value. Some tools also support
|
||||
properties with text values instead of value attributes. -->
|
||||
<property name="version" value="1.774" />
|
||||
<property name="commit" value="ef7bebf" />
|
||||
<property name="browser" value="Google Chrome" />
|
||||
<property name="ci" value="https://github.com/actions/runs/1234" />
|
||||
<property name="config">
|
||||
Config line #1
|
||||
Config line #2
|
||||
Config line #3
|
||||
</property>
|
||||
</properties>
|
||||
|
||||
<!-- <system-out> Optionally data written to standard out for the suite.
|
||||
Also supported on a test case level, see below. -->
|
||||
<system-out>Data written to standard out.</system-out>
|
||||
|
||||
<!-- <system-err> Optionally data written to standard error for the suite.
|
||||
Also supported on a test case level, see below. -->
|
||||
<system-err>Data written to standard error.</system-err>
|
||||
|
||||
<!-- <testcase> There are one or more test cases in a test suite. A test passed
|
||||
if there isn't an additional result element (skipped, failure, error).
|
||||
|
||||
name The name of this test case, often the method name
|
||||
classname The name of the parent class/folder, often the same as the suite's name
|
||||
assertions Number of assertions checked during test case execution
|
||||
time Execution time of the test in seconds
|
||||
file Source code file of this test case
|
||||
line Source code line number of the start of this test case
|
||||
-->
|
||||
<testcase name="testCase1" classname="Tests.Registration" assertions="2"
|
||||
time="2.436" file="tests/registration.code" line="24" />
|
||||
<testcase name="testCase2" classname="Tests.Registration" assertions="6"
|
||||
time="1.534" file="tests/registration.code" line="62" />
|
||||
<testcase name="testCase3" classname="Tests.Registration" assertions="3"
|
||||
time="0.822" file="tests/registration.code" line="102" />
|
||||
|
||||
<!-- Example of a test case that was skipped -->
|
||||
<testcase name="testCase4" classname="Tests.Registration" assertions="0"
|
||||
time="0" file="tests/registration.code" line="164">
|
||||
<!-- <skipped> Indicates that the test was not executed. Can have an optional
|
||||
message describing why the test was skipped. -->
|
||||
<skipped message="Test was skipped." />
|
||||
</testcase>
|
||||
|
||||
<!-- Example of a test case that failed. -->
|
||||
<testcase name="testCase5" classname="Tests.Registration" assertions="2"
|
||||
time="2.902412" file="tests/registration.code" line="202">
|
||||
<!-- <failure> The test failed because one of the assertions/checks failed.
|
||||
Can have a message and failure type, often the assertion type or class. The text
|
||||
content of the element often includes the failure description or stack trace. -->
|
||||
<failure message="Expected value did not match." type="AssertionError">
|
||||
<!-- Failure description or stack trace -->
|
||||
</failure>
|
||||
</testcase>
|
||||
|
||||
<!-- Example of a test case that had errors. -->
|
||||
<testcase name="testCase6" classname="Tests.Registration" assertions="0"
|
||||
time="3.819" file="tests/registration.code" line="235">
|
||||
<!-- <error> The test had an unexpected error during execution. Can have a
|
||||
message and error type, often the exception type or class. The text
|
||||
content of the element often includes the error description or stack trace. -->
|
||||
<error message="Division by zero." type="ArithmeticError">
|
||||
<!-- Error description or stack trace -->
|
||||
</error>
|
||||
</testcase>
|
||||
|
||||
<!-- Example of a test case with outputs. -->
|
||||
<testcase name="testCase7" classname="Tests.Registration" assertions="3"
|
||||
time="2.944" file="tests/registration.code" line="287">
|
||||
<!-- <system-out> Optional data written to standard out for the test case. -->
|
||||
<system-out>Data written to standard out.</system-out>
|
||||
|
||||
<!-- <system-err> Optional data written to standard error for the test case. -->
|
||||
<system-err>Data written to standard error.</system-err>
|
||||
</testcase>
|
||||
|
||||
<!-- Example of a test case with properties -->
|
||||
<testcase name="testCase8" classname="Tests.Registration" assertions="4"
|
||||
time="1.625275" file="tests/registration.code" line="302">
|
||||
<!-- <properties> Some tools also support properties for test cases. -->
|
||||
<properties>
|
||||
<property name="priority" value="high" />
|
||||
<property name="language" value="english" />
|
||||
<property name="author" value="Adrian" />
|
||||
<property name="attachment" value="screenshots/dashboard.png" />
|
||||
<property name="attachment" value="screenshots/users.png" />
|
||||
<property name="description">
|
||||
This text describes the purpose of this test case and provides
|
||||
an overview of what the test does and how it works.
|
||||
</property>
|
||||
</properties>
|
||||
</testcase>
|
||||
</testsuite>
|
||||
</testsuites>
|
||||
7
__tests__/fixtures/external/jest/jest-react-component-test-results.xml
vendored
Normal file
7
__tests__/fixtures/external/jest/jest-react-component-test-results.xml
vendored
Normal file
@@ -0,0 +1,7 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<testsuites name="React components test" tests="1" failures="0" errors="0" time="1.0">
|
||||
<testsuite name="<Component />" errors="0" failures="0" skipped="0" timestamp="2021-01-24T19:21:45" time="0.798" tests="1">
|
||||
<testcase classname="" name="<Component /> should render properly" time="0.704">
|
||||
</testcase>
|
||||
</testsuite>
|
||||
</testsuites>
|
||||
516
__tests__/fixtures/external/mocha/files.txt
vendored
Normal file
516
__tests__/fixtures/external/mocha/files.txt
vendored
Normal file
@@ -0,0 +1,516 @@
|
||||
.browserslistrc
|
||||
.editorconfig
|
||||
.eleventy.js
|
||||
.eslintignore
|
||||
.eslintrc.yml
|
||||
.fossaignore
|
||||
.gitattributes
|
||||
.github/CODE_OF_CONDUCT.md
|
||||
.github/CONTRIBUTING.md
|
||||
.github/FUNDING.yml
|
||||
.github/ISSUE_TEMPLATE/bug_report.md
|
||||
.github/ISSUE_TEMPLATE/feature_request.md
|
||||
.github/ISSUE_TEMPLATE/support-question.md
|
||||
.github/PULL_REQUEST_TEMPLATE.md
|
||||
.github/stale.yml
|
||||
.github/workflows/mocha.yml
|
||||
.github/workflows/nightly-site-deploy.yml
|
||||
.github/workflows/purge-expired-artifacts.yml
|
||||
.gitignore
|
||||
.lintstagedrc.json
|
||||
.mailmap
|
||||
.markdownlint.json
|
||||
.mocharc.yml
|
||||
.npmrc
|
||||
.nycrc
|
||||
.wallaby.js
|
||||
AUTHORS
|
||||
CHANGELOG.md
|
||||
LICENSE
|
||||
MAINTAINERS.md
|
||||
PROJECT_CHARTER.md
|
||||
README.md
|
||||
assets/growl/error.png
|
||||
assets/growl/ok.png
|
||||
assets/mocha-banner-192.png
|
||||
assets/mocha-banner.svg
|
||||
assets/mocha-fixture-wizard.sketch
|
||||
assets/mocha-logo-128.png
|
||||
assets/mocha-logo-192.png
|
||||
assets/mocha-logo-64.png
|
||||
assets/mocha-logo-96.png
|
||||
assets/mocha-logo.svg
|
||||
assets/opencollective-header.png
|
||||
bin/_mocha
|
||||
bin/mocha
|
||||
browser-entry.js
|
||||
docs/.browserslistrc
|
||||
docs/.eleventyignore
|
||||
docs/API.md
|
||||
docs/CNAME
|
||||
docs/LICENSE-CC-BY-4.0
|
||||
docs/README.md
|
||||
docs/_data/blocklist.json
|
||||
docs/_data/files.js
|
||||
docs/_data/supporters.js
|
||||
docs/_data/toc.js
|
||||
docs/_data/usage.js
|
||||
docs/_headers
|
||||
docs/_includes/default.liquid
|
||||
docs/_includes/fixture-wizard.html
|
||||
docs/_includes/supporters.md
|
||||
docs/api-tutorials/custom-reporter.md
|
||||
docs/api-tutorials/jsdoc.tutorials.json
|
||||
docs/changelogs/CHANGELOG_V3_older.md
|
||||
docs/changelogs/CHANGELOG_V4.md
|
||||
docs/changelogs/README.md
|
||||
docs/css/normalize.css
|
||||
docs/css/prism.css
|
||||
docs/css/style.css
|
||||
docs/css/supporters.css
|
||||
docs/example/Array.js
|
||||
docs/example/async-dump.js
|
||||
docs/example/debug-hanging-mocha.js
|
||||
docs/example/tests.html
|
||||
docs/favicon.ico
|
||||
docs/images/emacs.png
|
||||
docs/images/jetbrains-plugin.png
|
||||
docs/images/join-chat.svg
|
||||
docs/images/link-icon.svg
|
||||
docs/images/matomo-logo.png
|
||||
docs/images/mocha-logo.svg
|
||||
docs/images/mocha_side_bar.png
|
||||
docs/images/openjsf-logo.svg
|
||||
docs/images/reporter-doc.png
|
||||
docs/images/reporter-dot.png
|
||||
docs/images/reporter-html.png
|
||||
docs/images/reporter-json-stream.png
|
||||
docs/images/reporter-json.png
|
||||
docs/images/reporter-landing-fail.png
|
||||
docs/images/reporter-landing.png
|
||||
docs/images/reporter-list.png
|
||||
docs/images/reporter-min.png
|
||||
docs/images/reporter-nyan.png
|
||||
docs/images/reporter-progress.png
|
||||
docs/images/reporter-spec-duration.png
|
||||
docs/images/reporter-spec-fail.png
|
||||
docs/images/reporter-spec.png
|
||||
docs/images/reporter-string-diffs.png
|
||||
docs/images/reporter-tap.png
|
||||
docs/images/test-duration-range.png
|
||||
docs/images/wallaby-logo.png
|
||||
docs/images/wallaby.png
|
||||
docs/index.md
|
||||
docs/js/html5shiv.min.js
|
||||
example/config/.mocharc.js
|
||||
example/config/.mocharc.json
|
||||
example/config/.mocharc.jsonc
|
||||
example/config/.mocharc.yml
|
||||
example/config/README.md
|
||||
index.js
|
||||
jsdoc.conf.json
|
||||
karma.conf.js
|
||||
lib/browser/growl.js
|
||||
lib/browser/highlight-tags.js
|
||||
lib/browser/parse-query.js
|
||||
lib/browser/progress.js
|
||||
lib/browser/template.html
|
||||
lib/cli/cli.js
|
||||
lib/cli/collect-files.js
|
||||
lib/cli/commands.js
|
||||
lib/cli/config.js
|
||||
lib/cli/index.js
|
||||
lib/cli/init.js
|
||||
lib/cli/lookup-files.js
|
||||
lib/cli/node-flags.js
|
||||
lib/cli/one-and-dones.js
|
||||
lib/cli/options.js
|
||||
lib/cli/run-helpers.js
|
||||
lib/cli/run-option-metadata.js
|
||||
lib/cli/run.js
|
||||
lib/cli/watch-run.js
|
||||
lib/context.js
|
||||
lib/errors.js
|
||||
lib/esm-utils.js
|
||||
lib/hook.js
|
||||
lib/interfaces/bdd.js
|
||||
lib/interfaces/common.js
|
||||
lib/interfaces/exports.js
|
||||
lib/interfaces/index.js
|
||||
lib/interfaces/qunit.js
|
||||
lib/interfaces/tdd.js
|
||||
lib/mocha.js
|
||||
lib/mocharc.json
|
||||
lib/nodejs/buffered-worker-pool.js
|
||||
lib/nodejs/file-unloader.js
|
||||
lib/nodejs/growl.js
|
||||
lib/nodejs/parallel-buffered-runner.js
|
||||
lib/nodejs/reporters/parallel-buffered.js
|
||||
lib/nodejs/serializer.js
|
||||
lib/nodejs/worker.js
|
||||
lib/pending.js
|
||||
lib/plugin-loader.js
|
||||
lib/reporters/base.js
|
||||
lib/reporters/doc.js
|
||||
lib/reporters/dot.js
|
||||
lib/reporters/html.js
|
||||
lib/reporters/index.js
|
||||
lib/reporters/json-stream.js
|
||||
lib/reporters/json.js
|
||||
lib/reporters/landing.js
|
||||
lib/reporters/list.js
|
||||
lib/reporters/markdown.js
|
||||
lib/reporters/min.js
|
||||
lib/reporters/nyan.js
|
||||
lib/reporters/progress.js
|
||||
lib/reporters/spec.js
|
||||
lib/reporters/tap.js
|
||||
lib/reporters/xunit.js
|
||||
lib/runnable.js
|
||||
lib/runner.js
|
||||
lib/stats-collector.js
|
||||
lib/suite.js
|
||||
lib/test.js
|
||||
lib/utils.js
|
||||
mocha.css
|
||||
netlify.toml
|
||||
package-lock.json
|
||||
package-scripts.js
|
||||
package.json
|
||||
rollup.config.js
|
||||
scripts/karma-rollup-plugin.js
|
||||
scripts/linkify-changelog.js
|
||||
scripts/netlify-headers.js
|
||||
scripts/pick-from-package-json.js
|
||||
scripts/update-authors.js
|
||||
test/README.md
|
||||
test/assertions.js
|
||||
test/browser-specific/esm.spec.mjs
|
||||
test/browser-specific/fixtures/esm.fixture.mjs
|
||||
test/browser-specific/fixtures/requirejs/lib.fixture.js
|
||||
test/browser-specific/fixtures/requirejs/main.fixture.js
|
||||
test/browser-specific/fixtures/webpack/webpack.config.js
|
||||
test/browser-specific/fixtures/webpack/webpack.fixture.mjs
|
||||
test/browser-specific/requirejs-setup.js
|
||||
test/browser-specific/setup.js
|
||||
test/compiler-fixtures/foo.fixture.js
|
||||
test/compiler/test.coffee
|
||||
test/compiler/test.foo
|
||||
test/integration/README.md
|
||||
test/integration/color.spec.js
|
||||
test/integration/common-js-require.spec.js
|
||||
test/integration/compiler-globbing.spec.js
|
||||
test/integration/config.spec.js
|
||||
test/integration/deprecate.spec.js
|
||||
test/integration/diffs.spec.js
|
||||
test/integration/duplicate-arguments.spec.js
|
||||
test/integration/esm.spec.js
|
||||
test/integration/events.spec.js
|
||||
test/integration/file-utils.spec.js
|
||||
test/integration/fixtures/__default__.fixture.js
|
||||
test/integration/fixtures/cascade.fixture.js
|
||||
test/integration/fixtures/common-js-require.fixture.js
|
||||
test/integration/fixtures/config/mocha-config/index.js
|
||||
test/integration/fixtures/config/mocha-config/package.json
|
||||
test/integration/fixtures/config/mocharc.cjs
|
||||
test/integration/fixtures/config/mocharc.js
|
||||
test/integration/fixtures/config/mocharc.json
|
||||
test/integration/fixtures/config/mocharc.yaml
|
||||
test/integration/fixtures/current-test-title.fixture.js
|
||||
test/integration/fixtures/deprecate.fixture.js
|
||||
test/integration/fixtures/diffs/diffs.css.in
|
||||
test/integration/fixtures/diffs/diffs.css.out
|
||||
test/integration/fixtures/diffs/diffs.fixture.js
|
||||
test/integration/fixtures/diffs/output
|
||||
test/integration/fixtures/esm/add.mjs
|
||||
test/integration/fixtures/esm/esm-failure.fixture.mjs
|
||||
test/integration/fixtures/esm/esm-success.fixture.mjs
|
||||
test/integration/fixtures/esm/js-folder/add.js
|
||||
test/integration/fixtures/esm/js-folder/esm-in-js.fixture.js
|
||||
test/integration/fixtures/esm/js-folder/package.json
|
||||
test/integration/fixtures/esm/syntax-error/esm-syntax-error.fixture.mjs
|
||||
test/integration/fixtures/exit.fixture.js
|
||||
test/integration/fixtures/glob/glob.spec.js
|
||||
test/integration/fixtures/glob/nested/glob.spec.js
|
||||
test/integration/fixtures/hooks/after-each-hook-async-error.fixture.js
|
||||
test/integration/fixtures/hooks/after-each-hook-error.fixture.js
|
||||
test/integration/fixtures/hooks/after-each-this-test-error.fixture.js
|
||||
test/integration/fixtures/hooks/after-hook-async-error.fixture.js
|
||||
test/integration/fixtures/hooks/after-hook-deepnested-error.fixture.js
|
||||
test/integration/fixtures/hooks/after-hook-error.fixture.js
|
||||
test/integration/fixtures/hooks/after-hook-nested-error.fixture.js
|
||||
test/integration/fixtures/hooks/before-each-hook-async-error.fixture.js
|
||||
test/integration/fixtures/hooks/before-each-hook-error.fixture.js
|
||||
test/integration/fixtures/hooks/before-hook-async-error-tip.fixture.js
|
||||
test/integration/fixtures/hooks/before-hook-async-error.fixture.js
|
||||
test/integration/fixtures/hooks/before-hook-deepnested-error.fixture.js
|
||||
test/integration/fixtures/hooks/before-hook-error-tip.fixture.js
|
||||
test/integration/fixtures/hooks/before-hook-error.fixture.js
|
||||
test/integration/fixtures/hooks/before-hook-nested-error.fixture.js
|
||||
test/integration/fixtures/hooks/before-hook-root-error.fixture.js
|
||||
test/integration/fixtures/hooks/multiple-hook-async-error.fixture.js
|
||||
test/integration/fixtures/hooks/multiple-hook-error.fixture.js
|
||||
test/integration/fixtures/multiple-done-async.fixture.js
|
||||
test/integration/fixtures/multiple-done-before-each.fixture.js
|
||||
test/integration/fixtures/multiple-done-before.fixture.js
|
||||
test/integration/fixtures/multiple-done-specs.fixture.js
|
||||
test/integration/fixtures/multiple-done-with-error.fixture.js
|
||||
test/integration/fixtures/multiple-done.fixture.js
|
||||
test/integration/fixtures/multiple-runs/clean-references.fixture.js
|
||||
test/integration/fixtures/multiple-runs/dispose.fixture.js
|
||||
test/integration/fixtures/multiple-runs/multiple-runs-with-different-output-suite.fixture.js
|
||||
test/integration/fixtures/multiple-runs/multiple-runs-with-flaky-before-each-suite.fixture.js
|
||||
test/integration/fixtures/multiple-runs/multiple-runs-with-flaky-before-each.fixture.js
|
||||
test/integration/fixtures/multiple-runs/run-thrice-helper.js
|
||||
test/integration/fixtures/multiple-runs/run-thrice.fixture.js
|
||||
test/integration/fixtures/multiple-runs/start-second-run-if-previous-is-still-running-suite.fixture.js
|
||||
test/integration/fixtures/multiple-runs/start-second-run-if-previous-is-still-running.fixture.js
|
||||
test/integration/fixtures/no-diff.fixture.js
|
||||
test/integration/fixtures/options/allow-uncaught/propagate.fixture.js
|
||||
test/integration/fixtures/options/allow-uncaught/this-skip-it.fixture.js
|
||||
test/integration/fixtures/options/async-only-async.fixture.js
|
||||
test/integration/fixtures/options/async-only-sync.fixture.js
|
||||
test/integration/fixtures/options/bail-async.fixture.js
|
||||
test/integration/fixtures/options/bail-with-after.fixture.js
|
||||
test/integration/fixtures/options/bail-with-afterEach.fixture.js
|
||||
test/integration/fixtures/options/bail-with-before.fixture.js
|
||||
test/integration/fixtures/options/bail-with-beforeEach.fixture.js
|
||||
test/integration/fixtures/options/bail-with-test.fixture.js
|
||||
test/integration/fixtures/options/bail.fixture.js
|
||||
test/integration/fixtures/options/delay-fail.fixture.js
|
||||
test/integration/fixtures/options/delay-only.fixture.js
|
||||
test/integration/fixtures/options/delay.fixture.js
|
||||
test/integration/fixtures/options/extension/test1.fixture.js
|
||||
test/integration/fixtures/options/extension/test2.fixture.coffee
|
||||
test/integration/fixtures/options/file-alpha.fixture.js
|
||||
test/integration/fixtures/options/file-beta.fixture.js
|
||||
test/integration/fixtures/options/file-theta.fixture.js
|
||||
test/integration/fixtures/options/forbid-only/only-before-each.fixture.js
|
||||
test/integration/fixtures/options/forbid-only/only-before.fixture.js
|
||||
test/integration/fixtures/options/forbid-only/only-empty-suite.fixture.js
|
||||
test/integration/fixtures/options/forbid-only/only-suite.fixture.js
|
||||
test/integration/fixtures/options/forbid-only/only.fixture.js
|
||||
test/integration/fixtures/options/forbid-only/passed.fixture.js
|
||||
test/integration/fixtures/options/forbid-pending/before-this-skip.fixture.js
|
||||
test/integration/fixtures/options/forbid-pending/beforeEach-this-skip.fixture.js
|
||||
test/integration/fixtures/options/forbid-pending/passed.fixture.js
|
||||
test/integration/fixtures/options/forbid-pending/pending.fixture.js
|
||||
test/integration/fixtures/options/forbid-pending/skip-empty-suite.fixture.js
|
||||
test/integration/fixtures/options/forbid-pending/skip-suite.fixture.js
|
||||
test/integration/fixtures/options/forbid-pending/skip.fixture.js
|
||||
test/integration/fixtures/options/forbid-pending/this-skip.fixture.js
|
||||
test/integration/fixtures/options/grep.fixture.js
|
||||
test/integration/fixtures/options/ignore/fail.fixture.js
|
||||
test/integration/fixtures/options/ignore/nested/fail.fixture.js
|
||||
test/integration/fixtures/options/ignore/nested/pass.fixture.js
|
||||
test/integration/fixtures/options/ignore/pass.fixture.js
|
||||
test/integration/fixtures/options/jobs/fail-in-parallel.fixture.js
|
||||
test/integration/fixtures/options/only/bdd.fixture.js
|
||||
test/integration/fixtures/options/only/qunit.fixture.js
|
||||
test/integration/fixtures/options/only/tdd.fixture.js
|
||||
test/integration/fixtures/options/parallel/bail.fixture.js
|
||||
test/integration/fixtures/options/parallel/exclusive-test-a.fixture.js
|
||||
test/integration/fixtures/options/parallel/exclusive-test-b.fixture.js
|
||||
test/integration/fixtures/options/parallel/retries-a.fixture.js
|
||||
test/integration/fixtures/options/parallel/retries-b.fixture.js
|
||||
test/integration/fixtures/options/parallel/syntax-err.fixture.js
|
||||
test/integration/fixtures/options/parallel/test-a.fixture.js
|
||||
test/integration/fixtures/options/parallel/test-b.fixture.js
|
||||
test/integration/fixtures/options/parallel/test-c.fixture.js
|
||||
test/integration/fixtures/options/parallel/test-d.fixture.js
|
||||
test/integration/fixtures/options/parallel/uncaught.fixture.js
|
||||
test/integration/fixtures/options/reporter-with-options.fixture.js
|
||||
test/integration/fixtures/options/retries.fixture.js
|
||||
test/integration/fixtures/options/slow-test.fixture.js
|
||||
test/integration/fixtures/options/sort-alpha.fixture.js
|
||||
test/integration/fixtures/options/sort-beta.fixture.js
|
||||
test/integration/fixtures/options/watch/dependency.fixture.js
|
||||
test/integration/fixtures/options/watch/hook.fixture.js
|
||||
test/integration/fixtures/options/watch/test-file-change.fixture.js
|
||||
test/integration/fixtures/options/watch/test-with-dependency.fixture.js
|
||||
test/integration/fixtures/parallel/test1.mjs
|
||||
test/integration/fixtures/parallel/test2.mjs
|
||||
test/integration/fixtures/parallel/test3.mjs
|
||||
test/integration/fixtures/passing-async.fixture.js
|
||||
test/integration/fixtures/passing-sync.fixture.js
|
||||
test/integration/fixtures/passing.fixture.js
|
||||
test/integration/fixtures/pending/programmatic.fixture.js
|
||||
test/integration/fixtures/pending/skip-async-before-hooks.fixture.js
|
||||
test/integration/fixtures/pending/skip-async-before-nested.fixture.js
|
||||
test/integration/fixtures/pending/skip-async-before.fixture.js
|
||||
test/integration/fixtures/pending/skip-async-beforeEach.fixture.js
|
||||
test/integration/fixtures/pending/skip-async-spec.fixture.js
|
||||
test/integration/fixtures/pending/skip-hierarchy.fixture.js
|
||||
test/integration/fixtures/pending/skip-shorthand.fixture.js
|
||||
test/integration/fixtures/pending/skip-sync-after.fixture.js
|
||||
test/integration/fixtures/pending/skip-sync-before-hooks.fixture.js
|
||||
test/integration/fixtures/pending/skip-sync-before-inner.fixture.js
|
||||
test/integration/fixtures/pending/skip-sync-before-nested.fixture.js
|
||||
test/integration/fixtures/pending/skip-sync-before.fixture.js
|
||||
test/integration/fixtures/pending/skip-sync-beforeEach-cond.fixture.js
|
||||
test/integration/fixtures/pending/skip-sync-beforeEach.fixture.js
|
||||
test/integration/fixtures/pending/skip-sync-spec.fixture.js
|
||||
test/integration/fixtures/pending/spec.fixture.js
|
||||
test/integration/fixtures/plugins/global-fixtures/global-setup-teardown-multiple.fixture.js
|
||||
test/integration/fixtures/plugins/global-fixtures/global-setup-teardown.fixture.js
|
||||
test/integration/fixtures/plugins/global-fixtures/global-setup.fixture.js
|
||||
test/integration/fixtures/plugins/global-fixtures/global-teardown.fixture.js
|
||||
test/integration/fixtures/plugins/root-hooks/esm/package.json
|
||||
test/integration/fixtures/plugins/root-hooks/esm/root-hook-defs-esm.fixture.js
|
||||
test/integration/fixtures/plugins/root-hooks/root-hook-defs-a.fixture.js
|
||||
test/integration/fixtures/plugins/root-hooks/root-hook-defs-b.fixture.js
|
||||
test/integration/fixtures/plugins/root-hooks/root-hook-defs-c.fixture.js
|
||||
test/integration/fixtures/plugins/root-hooks/root-hook-defs-d.fixture.js
|
||||
test/integration/fixtures/plugins/root-hooks/root-hook-defs-esm-broken.fixture.js
|
||||
test/integration/fixtures/plugins/root-hooks/root-hook-defs-esm.fixture.mjs
|
||||
test/integration/fixtures/plugins/root-hooks/root-hook-test-2.fixture.js
|
||||
test/integration/fixtures/plugins/root-hooks/root-hook-test.fixture.js
|
||||
test/integration/fixtures/regression/issue-1991.fixture.js
|
||||
test/integration/fixtures/regression/issue-2315.fixture.js
|
||||
test/integration/fixtures/regression/issue-2406.fixture.js
|
||||
test/integration/fixtures/regression/issue-2417.fixture.js
|
||||
test/integration/fixtures/reporters.fixture.js
|
||||
test/integration/fixtures/retries/async.fixture.js
|
||||
test/integration/fixtures/retries/early-pass.fixture.js
|
||||
test/integration/fixtures/retries/hooks.fixture.js
|
||||
test/integration/fixtures/retries/nested.fixture.js
|
||||
test/integration/fixtures/runner/events-bail-retries.fixture.js
|
||||
test/integration/fixtures/runner/events-bail.fixture.js
|
||||
test/integration/fixtures/runner/events-basic.fixture.js
|
||||
test/integration/fixtures/runner/events-delay.fixture.js
|
||||
test/integration/fixtures/runner/events-retries.fixture.js
|
||||
test/integration/fixtures/simple-reporter.js
|
||||
test/integration/fixtures/simple-ui.fixture.js
|
||||
test/integration/fixtures/suite/suite-no-callback.fixture.js
|
||||
test/integration/fixtures/suite/suite-returning-value.fixture.js
|
||||
test/integration/fixtures/suite/suite-skipped-callback.fixture.js
|
||||
test/integration/fixtures/suite/suite-skipped-no-callback.fixture.js
|
||||
test/integration/fixtures/test-for-simple-ui.fixture.js
|
||||
test/integration/fixtures/timeout-override.fixture.js
|
||||
test/integration/fixtures/timeout.fixture.js
|
||||
test/integration/fixtures/uncaught/after-runner.fixture.js
|
||||
test/integration/fixtures/uncaught/double.fixture.js
|
||||
test/integration/fixtures/uncaught/fatal.fixture.js
|
||||
test/integration/fixtures/uncaught/hook.fixture.js
|
||||
test/integration/fixtures/uncaught/issue-1327.fixture.js
|
||||
test/integration/fixtures/uncaught/issue-1417.fixture.js
|
||||
test/integration/fixtures/uncaught/listeners.fixture.js
|
||||
test/integration/fixtures/uncaught/pending.fixture.js
|
||||
test/integration/fixtures/uncaught/recover.fixture.js
|
||||
test/integration/fixtures/uncaught/unhandled.fixture.js
|
||||
test/integration/glob.spec.js
|
||||
test/integration/helpers.js
|
||||
test/integration/hook-err.spec.js
|
||||
test/integration/hooks.spec.js
|
||||
test/integration/init.spec.js
|
||||
test/integration/invalid-arguments.spec.js
|
||||
test/integration/multiple-done.spec.js
|
||||
test/integration/multiple-runs.spec.js
|
||||
test/integration/no-diff.spec.js
|
||||
test/integration/only.spec.js
|
||||
test/integration/options/allowUncaught.spec.js
|
||||
test/integration/options/asyncOnly.spec.js
|
||||
test/integration/options/bail.spec.js
|
||||
test/integration/options/compilers.spec.js
|
||||
test/integration/options/delay.spec.js
|
||||
test/integration/options/exit.spec.js
|
||||
test/integration/options/extension.spec.js
|
||||
test/integration/options/file.spec.js
|
||||
test/integration/options/forbidOnly.spec.js
|
||||
test/integration/options/forbidPending.spec.js
|
||||
test/integration/options/grep.spec.js
|
||||
test/integration/options/ignore.spec.js
|
||||
test/integration/options/invert.spec.js
|
||||
test/integration/options/jobs.spec.js
|
||||
test/integration/options/listInterfaces.spec.js
|
||||
test/integration/options/listReporters.spec.js
|
||||
test/integration/options/node-flags.spec.js
|
||||
test/integration/options/opts.spec.js
|
||||
test/integration/options/parallel.spec.js
|
||||
test/integration/options/reporter-option.spec.js
|
||||
test/integration/options/retries.spec.js
|
||||
test/integration/options/sort.spec.js
|
||||
test/integration/options/timeout.spec.js
|
||||
test/integration/options/ui.spec.js
|
||||
test/integration/options/watch.spec.js
|
||||
test/integration/parallel.spec.js
|
||||
test/integration/pending.spec.js
|
||||
test/integration/plugins/global-fixtures.spec.js
|
||||
test/integration/plugins/root-hooks.spec.js
|
||||
test/integration/regression.spec.js
|
||||
test/integration/reporters.spec.js
|
||||
test/integration/retries.spec.js
|
||||
test/integration/suite.spec.js
|
||||
test/integration/timeout.spec.js
|
||||
test/integration/uncaught.spec.js
|
||||
test/interfaces/bdd.spec.js
|
||||
test/interfaces/exports.spec.js
|
||||
test/interfaces/qunit.spec.js
|
||||
test/interfaces/tdd.spec.js
|
||||
test/jsapi/index.js
|
||||
test/node-unit/buffered-worker-pool.spec.js
|
||||
test/node-unit/cli/config.spec.js
|
||||
test/node-unit/cli/fixtures/bad-module.fixture.js
|
||||
test/node-unit/cli/node-flags.spec.js
|
||||
test/node-unit/cli/options.spec.js
|
||||
test/node-unit/cli/run-helpers.spec.js
|
||||
test/node-unit/cli/run.spec.js
|
||||
test/node-unit/fixtures/dumb-module.fixture.js
|
||||
test/node-unit/fixtures/dumber-module.fixture.js
|
||||
test/node-unit/fixtures/wonky-reporter.fixture.js
|
||||
test/node-unit/mocha.spec.js
|
||||
test/node-unit/parallel-buffered-runner.spec.js
|
||||
test/node-unit/reporters/parallel-buffered.spec.js
|
||||
test/node-unit/serializer.spec.js
|
||||
test/node-unit/stack-trace-filter.spec.js
|
||||
test/node-unit/utils.spec.js
|
||||
test/node-unit/worker.spec.js
|
||||
test/only/bdd-require.spec.js
|
||||
test/only/global/bdd.spec.js
|
||||
test/only/global/qunit.spec.js
|
||||
test/only/global/tdd.spec.js
|
||||
test/reporters/base.spec.js
|
||||
test/reporters/doc.spec.js
|
||||
test/reporters/dot.spec.js
|
||||
test/reporters/helpers.js
|
||||
test/reporters/json-stream.spec.js
|
||||
test/reporters/json.spec.js
|
||||
test/reporters/landing.spec.js
|
||||
test/reporters/list.spec.js
|
||||
test/reporters/markdown.spec.js
|
||||
test/reporters/min.spec.js
|
||||
test/reporters/nyan.spec.js
|
||||
test/reporters/progress.spec.js
|
||||
test/reporters/spec.spec.js
|
||||
test/reporters/tap.spec.js
|
||||
test/reporters/xunit.spec.js
|
||||
test/require/a.js
|
||||
test/require/b.coffee
|
||||
test/require/c.js
|
||||
test/require/d.coffee
|
||||
test/require/require.spec.js
|
||||
test/setup.js
|
||||
test/smoke/smoke.spec.js
|
||||
test/unit/context.spec.js
|
||||
test/unit/duration.spec.js
|
||||
test/unit/errors.spec.js
|
||||
test/unit/globals.spec.js
|
||||
test/unit/grep.spec.js
|
||||
test/unit/hook-async.spec.js
|
||||
test/unit/hook-sync-nested.spec.js
|
||||
test/unit/hook-sync.spec.js
|
||||
test/unit/hook-timeout.spec.js
|
||||
test/unit/hook.spec.js
|
||||
test/unit/mocha.spec.js
|
||||
test/unit/overspecified-async.spec.js
|
||||
test/unit/parse-query.spec.js
|
||||
test/unit/plugin-loader.spec.js
|
||||
test/unit/required-tokens.spec.js
|
||||
test/unit/root.spec.js
|
||||
test/unit/runnable.spec.js
|
||||
test/unit/runner.spec.js
|
||||
test/unit/suite.spec.js
|
||||
test/unit/test.spec.js
|
||||
test/unit/throw.spec.js
|
||||
test/unit/timeout.spec.js
|
||||
test/unit/utils.spec.js
|
||||
15097
__tests__/fixtures/external/mocha/mocha-test-results.json
vendored
Normal file
15097
__tests__/fixtures/external/mocha/mocha-test-results.json
vendored
Normal file
File diff suppressed because it is too large
Load Diff
125
__tests__/fixtures/external/nunit-sample.xml
vendored
Normal file
125
__tests__/fixtures/external/nunit-sample.xml
vendored
Normal file
@@ -0,0 +1,125 @@
|
||||
<?xml version="1.0" encoding="utf-8" standalone="no"?>
|
||||
<test-run id="2" name="mock-assembly.dll" fullname="D:\Dev\NUnit\nunit-3.0\work\bin\vs2008\Debug\mock-assembly.dll" testcasecount="25" result="Failed" time="0.154" total="18" passed="12" failed="2" inconclusive="1" skipped="3" asserts="2" run-date="2011-07-26" start-time="11:34:27">
|
||||
<environment nunit-version="1.0.0.0" clr-version="2.0.50727.4961" os-version="Microsoft Windows NT 6.1.7600.0" platform="Win32NT" cwd="D:\Dev\NUnit\nunit-3.0\work\bin\vs2008\Debug" machine-name="CHARLIE-LAPTOP" user="charlie" user-domain="charlie-laptop" culture="en-US" uiculture="en-US" />
|
||||
<test-suite type="Assembly" id="1036" name="mock-assembly.dll" fullname="D:\Dev\NUnit\nunit-3.0\work\bin\vs2008\Debug\mock-assembly.dll" testcasecount="25" result="Failed" time="0.154" total="18" passed="12" failed="2" inconclusive="1" skipped="3" asserts="2">
|
||||
<properties>
|
||||
<property name="_PID" value="11928" />
|
||||
<property name="_APPDOMAIN" value="test-domain-mock-assembly.dll" />
|
||||
</properties>
|
||||
<failure>
|
||||
<message><![CDATA[Child test failed]]></message>
|
||||
</failure>
|
||||
<test-suite type="TestFixture" id="1000" name="MockTestFixture" fullname="NUnit.Tests.Assemblies.MockTestFixture" testcasecount="11" result="Failed" time="0.119" total="10" passed="4" failed="2" inconclusive="1" skipped="3" asserts="0">
|
||||
<properties>
|
||||
<property name="Category" value="FixtureCategory" />
|
||||
<property name="Description" value="Fake Test Fixture" />
|
||||
</properties>
|
||||
<failure>
|
||||
<message><![CDATA[Child test failed]]></message>
|
||||
</failure>
|
||||
<test-case id="1005" name="FailingTest" fullname="NUnit.Tests.Assemblies.MockTestFixture.FailingTest" result="Failed" time="0.023" asserts="0">
|
||||
<failure>
|
||||
<message><![CDATA[Intentional failure]]></message>
|
||||
<stack-trace><![CDATA[ at NUnit.Framework.Assert.Fail(String message, Object[] args) in D:\Dev\NUnit\nunit-3.0\work\NUnitFramework\src\framework\Assert.cs:line 142
|
||||
at NUnit.Framework.Assert.Fail(String message) in D:\Dev\NUnit\nunit-3.0\work\NUnitFramework\src\framework\Assert.cs:line 152
|
||||
at NUnit.Tests.Assemblies.MockTestFixture.FailingTest() in D:\Dev\NUnit\nunit-3.0\work\NUnitFramework\src\mock-assembly\MockAssembly.cs:line 121]]></stack-trace>
|
||||
</failure>
|
||||
</test-case>
|
||||
<test-case id="1010" name="InconclusiveTest" fullname="NUnit.Tests.Assemblies.MockTestFixture.InconclusiveTest" result="Inconclusive" time="0.001" asserts="0" />
|
||||
<test-case id="1001" name="MockTest1" fullname="NUnit.Tests.Assemblies.MockTestFixture.MockTest1" result="Passed" time="0.000" asserts="0">
|
||||
<properties>
|
||||
<property name="Description" value="Mock Test #1" />
|
||||
</properties>
|
||||
</test-case>
|
||||
<test-case id="1002" name="MockTest2" fullname="NUnit.Tests.Assemblies.MockTestFixture.MockTest2" result="Passed" time="0.000" asserts="0">
|
||||
<properties>
|
||||
<property name="Severity" value="Critical" />
|
||||
<property name="Description" value="This is a really, really, really, really, really, really, really, really, really, really, really, really, really, really, really, really, really, really, really, really, really, really, really, really, really long description" />
|
||||
<property name="Category" value="MockCategory" />
|
||||
</properties>
|
||||
</test-case>
|
||||
<test-case id="1003" name="MockTest3" fullname="NUnit.Tests.Assemblies.MockTestFixture.MockTest3" result="Passed" time="0.000" asserts="0">
|
||||
<properties>
|
||||
<property name="Category" value="AnotherCategory" />
|
||||
<property name="Category" value="MockCategory" />
|
||||
</properties>
|
||||
</test-case>
|
||||
<test-case id="1007" name="MockTest4" fullname="NUnit.Tests.Assemblies.MockTestFixture.MockTest4" result="Skipped" label="Ignored" time="0.000" asserts="0">
|
||||
<properties>
|
||||
<property name="Category" value="Foo" />
|
||||
<property name="_SKIPREASON" value="ignoring this test method for now" />
|
||||
</properties>
|
||||
<reason>
|
||||
<message><![CDATA[ignoring this test method for now]]></message>
|
||||
</reason>
|
||||
</test-case>
|
||||
<test-case id="1004" name="MockTest5" fullname="NUnit.Tests.Assemblies.MockTestFixture.MockTest5" result="Skipped" label="Invalid" time="0.000" asserts="0">
|
||||
<properties>
|
||||
<property name="_SKIPREASON" value="Method is not public" />
|
||||
</properties>
|
||||
<reason>
|
||||
<message><![CDATA[Method is not public]]></message>
|
||||
</reason>
|
||||
</test-case>
|
||||
<test-case id="1009" name="NotRunnableTest" fullname="NUnit.Tests.Assemblies.MockTestFixture.NotRunnableTest" result="Skipped" label="Invalid" time="0.000" asserts="0">
|
||||
<properties>
|
||||
<property name="_SKIPREASON" value="No arguments were provided" />
|
||||
</properties>
|
||||
<reason>
|
||||
<message><![CDATA[No arguments were provided]]></message>
|
||||
</reason>
|
||||
</test-case>
|
||||
<test-case id="1011" name="TestWithException" fullname="NUnit.Tests.Assemblies.MockTestFixture.TestWithException" result="Failed" label="Error" time="0.002" asserts="0">
|
||||
<failure>
|
||||
<message><![CDATA[System.ApplicationException : Intentional Exception]]></message>
|
||||
<stack-trace><![CDATA[ at NUnit.Tests.Assemblies.MockTestFixture.MethodThrowsException() in D:\Dev\NUnit\nunit-3.0\work\NUnitFramework\src\mock-assembly\MockAssembly.cs:line 158
|
||||
at NUnit.Tests.Assemblies.MockTestFixture.TestWithException() in D:\Dev\NUnit\nunit-3.0\work\NUnitFramework\src\mock-assembly\MockAssembly.cs:line 153]]></stack-trace>
|
||||
</failure>
|
||||
</test-case>
|
||||
<test-case id="1006" name="TestWithManyProperties" fullname="NUnit.Tests.Assemblies.MockTestFixture.TestWithManyProperties" result="Passed" time="0.000" asserts="0">
|
||||
<properties>
|
||||
<property name="TargetMethod" value="SomeClassName" />
|
||||
<property name="Size" value="5" />
|
||||
</properties>
|
||||
</test-case>
|
||||
</test-suite>
|
||||
<test-suite type="TestFixture" id="1023" name="BadFixture" fullname="NUnit.Tests.BadFixture" testcasecount="1" result="Skipped" label="Invalid" time="0.000" total="0" passed="0" failed="0" inconclusive="0" skipped="0" asserts="0">
|
||||
<properties>
|
||||
<property name="_SKIPREASON" value="No suitable constructor was found" />
|
||||
</properties>
|
||||
<reason>
|
||||
<message><![CDATA[No suitable constructor was found]]></message>
|
||||
</reason>
|
||||
</test-suite>
|
||||
<test-suite type="TestFixture" id="1025" name="FixtureWithTestCases" fullname="NUnit.Tests.FixtureWithTestCases" testcasecount="2" result="Passed" time="0.010" total="2" passed="2" failed="0" inconclusive="0" skipped="0" asserts="2">
|
||||
<test-suite type="ParameterizedMethod" id="1026" name="MethodWithParameters" fullname="NUnit.Tests.FixtureWithTestCases.MethodWithParameters" testcasecount="2" result="Passed" time="0.009" total="2" passed="2" failed="0" inconclusive="0" skipped="0" asserts="2">
|
||||
<test-case id="1027" name="MethodWithParameters(2,2)" fullname="NUnit.Tests.FixtureWithTestCases.MethodWithParameters(2,2)" result="Passed" time="0.006" asserts="1" />
|
||||
<test-case id="1028" name="MethodWithParameters(9,11)" fullname="NUnit.Tests.FixtureWithTestCases.MethodWithParameters(9,11)" result="Passed" time="0.000" asserts="1" />
|
||||
</test-suite>
|
||||
</test-suite>
|
||||
<test-suite type="TestFixture" id="1016" name="IgnoredFixture" fullname="NUnit.Tests.IgnoredFixture" testcasecount="3" result="Skipped" label="Ignored" time="0.000" total="0" passed="0" failed="0" inconclusive="0" skipped="0" asserts="0">
|
||||
<properties>
|
||||
<property name="_SKIPREASON" value="" />
|
||||
</properties>
|
||||
<reason>
|
||||
<message><![CDATA[]]></message>
|
||||
</reason>
|
||||
</test-suite>
|
||||
<test-suite type="ParameterizedFixture" id="1029" name="ParameterizedFixture" fullname="NUnit.Tests.ParameterizedFixture" testcasecount="4" result="Passed" time="0.007" total="4" passed="4" failed="0" inconclusive="0" skipped="0" asserts="0">
|
||||
<test-suite type="TestFixture" id="1030" name="ParameterizedFixture(42)" fullname="NUnit.Tests.ParameterizedFixture(42)" testcasecount="2" result="Passed" time="0.003" total="2" passed="2" failed="0" inconclusive="0" skipped="0" asserts="0">
|
||||
<test-case id="1031" name="Test1" fullname="NUnit.Tests.ParameterizedFixture(42).Test1" result="Passed" time="0.000" asserts="0" />
|
||||
<test-case id="1032" name="Test2" fullname="NUnit.Tests.ParameterizedFixture(42).Test2" result="Passed" time="0.000" asserts="0" />
|
||||
</test-suite>
|
||||
<test-suite type="TestFixture" id="1033" name="ParameterizedFixture(5)" fullname="NUnit.Tests.ParameterizedFixture(5)" testcasecount="2" result="Passed" time="0.002" total="2" passed="2" failed="0" inconclusive="0" skipped="0" asserts="0">
|
||||
<test-case id="1034" name="Test1" fullname="NUnit.Tests.ParameterizedFixture(5).Test1" result="Passed" time="0.000" asserts="0" />
|
||||
<test-case id="1035" name="Test2" fullname="NUnit.Tests.ParameterizedFixture(5).Test2" result="Passed" time="0.000" asserts="0" />
|
||||
</test-suite>
|
||||
</test-suite>
|
||||
<test-suite type="TestFixture" id="1012" name="OneTestCase" fullname="NUnit.Tests.Singletons.OneTestCase" testcasecount="1" result="Passed" time="0.001" total="1" passed="1" failed="0" inconclusive="0" skipped="0" asserts="0">
|
||||
<test-case id="1013" name="TestCase" fullname="NUnit.Tests.Singletons.OneTestCase.TestCase" result="Passed" time="0.000" asserts="0" />
|
||||
</test-suite>
|
||||
<test-suite type="TestFixture" id="1014" name="MockTestFixture" fullname="NUnit.Tests.TestAssembly.MockTestFixture" testcasecount="1" result="Passed" time="0.001" total="1" passed="1" failed="0" inconclusive="0" skipped="0" asserts="0">
|
||||
<test-case id="1015" name="MyTest" fullname="NUnit.Tests.TestAssembly.MockTestFixture.MyTest" result="Passed" time="0.001" asserts="0" />
|
||||
</test-suite>
|
||||
</test-suite>
|
||||
</test-run>
|
||||
28
__tests__/fixtures/external/phpunit/junit-basic.xml
vendored
Normal file
28
__tests__/fixtures/external/phpunit/junit-basic.xml
vendored
Normal file
@@ -0,0 +1,28 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<!--
|
||||
This is a basic JUnit-style XML example to highlight the basis structure.
|
||||
|
||||
Example by Testmo. Copyright 2023 Testmo GmbH. All rights reserved.
|
||||
Testmo test management software - https://www.testmo.com/
|
||||
-->
|
||||
<testsuites time="15.682687">
|
||||
<testsuite name="Tests.Registration" time="6.605871">
|
||||
<testcase name="testCase1" classname="Tests.Registration" time="2.113871" />
|
||||
<testcase name="testCase2" classname="Tests.Registration" time="1.051" />
|
||||
<testcase name="testCase3" classname="Tests.Registration" time="3.441" />
|
||||
</testsuite>
|
||||
<testsuite name="Tests.Authentication" time="9.076816">
|
||||
<testsuite name="Tests.Authentication.Login" time="4.356">
|
||||
<testcase name="testCase4" classname="Tests.Authentication.Login" time="2.244" />
|
||||
<testcase name="testCase5" classname="Tests.Authentication.Login" time="0.781" />
|
||||
<testcase name="testCase6" classname="Tests.Authentication.Login" time="1.331" />
|
||||
</testsuite>
|
||||
<testcase name="testCase7" classname="Tests.Authentication" time="2.508" />
|
||||
<testcase name="testCase8" classname="Tests.Authentication" time="1.230816" />
|
||||
<testcase name="testCase9" classname="Tests.Authentication" time="0.982">
|
||||
<failure message="Assertion error message" type="AssertionError">
|
||||
<!-- Call stack printed here -->
|
||||
</failure>
|
||||
</testcase>
|
||||
</testsuite>
|
||||
</testsuites>
|
||||
212
__tests__/fixtures/external/phpunit/phpcheckstyle-phpunit.xml
vendored
Normal file
212
__tests__/fixtures/external/phpunit/phpcheckstyle-phpunit.xml
vendored
Normal file
@@ -0,0 +1,212 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<testsuites>
|
||||
<testsuite name="/workspace/phpcheckstyle/phpunit.xml" tests="30" assertions="117" errors="0" failures="2" skipped="0" time="0.041478">
|
||||
<testsuite name="PHPUnitTestSuite" tests="30" assertions="117" errors="0" failures="2" skipped="0" time="0.041478">
|
||||
<testsuite name="CommentsTest" file="/workspace/phpcheckstyle/test/CommentsTest.php" tests="3" assertions="12" errors="0" failures="0" skipped="0" time="0.006702">
|
||||
<testcase name="testGoodDoc" file="/workspace/phpcheckstyle/test/CommentsTest.php" line="12" class="CommentsTest" classname="CommentsTest" assertions="4" time="0.005093"/>
|
||||
<testcase name="testComments" file="/workspace/phpcheckstyle/test/CommentsTest.php" line="30" class="CommentsTest" classname="CommentsTest" assertions="4" time="0.000921">
|
||||
<system-out>File "./test/sample/bad_comments.php" warning, line 4 - Avoid Shell/Perl like comments.
|
||||
File "./test/sample/bad_comments.php" warning, line 6 - The class Comments must have a docblock comment.
|
||||
File "./test/sample/bad_comments.php" warning, line 10 - The function testComment must have a docblock comment.
|
||||
File "./test/sample/bad_comments.php" warning, line 18 - The function testComment returns a value and must include @returns in its docblock.
|
||||
File "./test/sample/bad_comments.php" warning, line 18 - The function testComment parameters must match those in its docblock @param.
|
||||
File "./test/sample/bad_comments.php" warning, line 18 - The function testComment throws an exception and must include @throws in its docblock.
|
||||
</system-out>
|
||||
</testcase>
|
||||
<testcase name="testTODOs" file="/workspace/phpcheckstyle/test/CommentsTest.php" line="48" class="CommentsTest" classname="CommentsTest" assertions="4" time="0.000688">
|
||||
<system-out>File "./test/sample/todo.php" warning, line 3 - TODO: The todo message.
|
||||
</system-out>
|
||||
</testcase>
|
||||
</testsuite>
|
||||
<testsuite name="DeprecationTest" file="/workspace/phpcheckstyle/test/DeprecationTest.php" tests="1" assertions="4" errors="0" failures="0" skipped="0" time="0.000974">
|
||||
<testcase name="testDeprecations" file="/workspace/phpcheckstyle/test/DeprecationTest.php" line="12" class="DeprecationTest" classname="DeprecationTest" assertions="4" time="0.000974">
|
||||
<system-out>File "./test/sample/bad_deprecation.php" warning, line 17 - split is deprecated since PHP 5.3. explode($pattern, $string) or preg_split('@'.$pattern.'@', $string) must be used instead.
|
||||
File "./test/sample/bad_deprecation.php" warning, line 19 - ereg is deprecated since PHP 5.3. preg_match('@'.$pattern.'@', $string) must be used instead.
|
||||
File "./test/sample/bad_deprecation.php" warning, line 21 - session_register is deprecated since PHP 5.3. $_SESSION must be used instead.
|
||||
File "./test/sample/bad_deprecation.php" warning, line 23 - mysql_db_query is deprecated since PHP 5.3. mysql_select_db and mysql_query must be used instead.
|
||||
File "./test/sample/bad_deprecation.php" warning, line 25 - $HTTP_GET_VARS is deprecated since PHP 5.3. $_GET must be used instead.
|
||||
</system-out>
|
||||
</testcase>
|
||||
</testsuite>
|
||||
<testsuite name="GoodTest" file="/workspace/phpcheckstyle/test/GoodTest.php" tests="4" assertions="16" errors="0" failures="0" skipped="0" time="0.005357">
|
||||
<testcase name="testGood" file="/workspace/phpcheckstyle/test/GoodTest.php" line="12" class="GoodTest" classname="GoodTest" assertions="4" time="0.002647"/>
|
||||
<testcase name="testDoWhile" file="/workspace/phpcheckstyle/test/GoodTest.php" line="32" class="GoodTest" classname="GoodTest" assertions="4" time="0.001022"/>
|
||||
<testcase name="testAnonymousFunction" file="/workspace/phpcheckstyle/test/GoodTest.php" line="50" class="GoodTest" classname="GoodTest" assertions="4" time="0.000800"/>
|
||||
<testcase name="testException" file="/workspace/phpcheckstyle/test/GoodTest.php" line="68" class="GoodTest" classname="GoodTest" assertions="4" time="0.000888"/>
|
||||
</testsuite>
|
||||
<testsuite name="IndentationTest" file="/workspace/phpcheckstyle/test/IndentationTest.php" tests="8" assertions="32" errors="0" failures="0" skipped="0" time="0.007654">
|
||||
<testcase name="testTabIndentation" file="/workspace/phpcheckstyle/test/IndentationTest.php" line="12" class="IndentationTest" classname="IndentationTest" assertions="4" time="0.000857">
|
||||
<system-out>File "./test/sample/bad_indentation.php" warning, line 8 - Whitespace indentation must not be used.
|
||||
File "./test/sample/bad_indentation.php" warning, line 15 - Whitespace indentation must not be used.
|
||||
File "./test/sample/bad_indentation.php" warning, line 17 - Whitespace indentation must not be used.
|
||||
File "./test/sample/bad_indentation.php" warning, line 18 - Whitespace indentation must not be used.
|
||||
File "./test/sample/bad_indentation.php" warning, line 19 - Whitespace indentation must not be used.
|
||||
File "./test/sample/bad_indentation.php" warning, line 20 - Whitespace indentation must not be used.
|
||||
</system-out>
|
||||
</testcase>
|
||||
<testcase name="testSpaceIndentation" file="/workspace/phpcheckstyle/test/IndentationTest.php" line="30" class="IndentationTest" classname="IndentationTest" assertions="4" time="0.000929">
|
||||
<system-out>File "./test/sample/bad_indentation.php" warning, line 10 - Tab indentation must not be used.
|
||||
File "./test/sample/bad_indentation.php" warning, line 10 - The indentation level must be 4 but was 1.
|
||||
File "./test/sample/bad_indentation.php" warning, line 13 - Tab indentation must not be used.
|
||||
File "./test/sample/bad_indentation.php" warning, line 13 - The indentation level must be 4 but was 1.
|
||||
File "./test/sample/bad_indentation.php" warning, line 15 - The indentation level must be 8 but was 4.
|
||||
File "./test/sample/bad_indentation.php" warning, line 16 - Tab indentation must not be used.
|
||||
File "./test/sample/bad_indentation.php" warning, line 16 - The indentation level must be 8 but was 1.
|
||||
File "./test/sample/bad_indentation.php" warning, line 17 - The indentation level must be 8 but was 3.
|
||||
File "./test/sample/bad_indentation.php" warning, line 18 - The indentation level must be 8 but was 5.
|
||||
File "./test/sample/bad_indentation.php" warning, line 19 - The indentation level must be 8 but was 6.
|
||||
File "./test/sample/bad_indentation.php" warning, line 20 - The indentation level must be 4 but was 1.
|
||||
</system-out>
|
||||
</testcase>
|
||||
<testcase name="testSpaceIndentationArray" file="/workspace/phpcheckstyle/test/IndentationTest.php" line="51" class="IndentationTest" classname="IndentationTest" assertions="4" time="0.000975">
|
||||
<system-out>File "./test/sample/bad_indentation_array.php" warning, line 10 - Tab indentation must not be used.
|
||||
File "./test/sample/bad_indentation_array.php" warning, line 10 - The indentation level must be 4 but was 1.
|
||||
File "./test/sample/bad_indentation_array.php" warning, line 13 - Tab indentation must not be used.
|
||||
File "./test/sample/bad_indentation_array.php" warning, line 13 - The indentation level must be 4 but was 1.
|
||||
File "./test/sample/bad_indentation_array.php" warning, line 16 - The indentation level must be 12 but was 8.
|
||||
File "./test/sample/bad_indentation_array.php" warning, line 24 - The indentation level must be 12 but was 8.
|
||||
File "./test/sample/bad_indentation_array.php" warning, line 29 - The indentation level must be 8 but was 12.
|
||||
File "./test/sample/bad_indentation_array.php" warning, line 15 - Undeclared or unused variable: $aVar.
|
||||
File "./test/sample/bad_indentation_array.php" warning, line 19 - Undeclared or unused variable: $bVar.
|
||||
File "./test/sample/bad_indentation_array.php" warning, line 23 - Undeclared or unused variable: $cVar.
|
||||
File "./test/sample/bad_indentation_array.php" warning, line 27 - Undeclared or unused variable: $dVar.
|
||||
</system-out>
|
||||
</testcase>
|
||||
<testcase name="testGoodSpaceIndentationArray" file="/workspace/phpcheckstyle/test/IndentationTest.php" line="72" class="IndentationTest" classname="IndentationTest" assertions="4" time="0.001212"/>
|
||||
<testcase name="testGoodIndentationNewLine" file="/workspace/phpcheckstyle/test/IndentationTest.php" line="93" class="IndentationTest" classname="IndentationTest" assertions="4" time="0.000859"/>
|
||||
<testcase name="testGoodIndentationSpaces" file="/workspace/phpcheckstyle/test/IndentationTest.php" line="116" class="IndentationTest" classname="IndentationTest" assertions="4" time="0.000780"/>
|
||||
<testcase name="testBadSpaces" file="/workspace/phpcheckstyle/test/IndentationTest.php" line="137" class="IndentationTest" classname="IndentationTest" assertions="4" time="0.001120">
|
||||
<system-out>File "./test/sample/bad_spaces.php" warning, line 17 - Whitespace must follow ,.
|
||||
File "./test/sample/bad_spaces.php" warning, line 17 - Whitespace must precede {.
|
||||
File "./test/sample/bad_spaces.php" warning, line 19 - Whitespace must follow if.
|
||||
File "./test/sample/bad_spaces.php" warning, line 23 - Whitespace must precede =.
|
||||
File "./test/sample/bad_spaces.php" warning, line 23 - Whitespace must follow =.
|
||||
File "./test/sample/bad_spaces.php" warning, line 23 - Whitespace must precede +.
|
||||
File "./test/sample/bad_spaces.php" warning, line 23 - Whitespace must follow +.
|
||||
File "./test/sample/bad_spaces.php" info, line 25 - Whitespace must not precede ,.
|
||||
File "./test/sample/bad_spaces.php" info, line 26 - Whitespace must not follow !.
|
||||
</system-out>
|
||||
</testcase>
|
||||
<testcase name="testBadSpaceAfterControl" file="/workspace/phpcheckstyle/test/IndentationTest.php" line="155" class="IndentationTest" classname="IndentationTest" assertions="4" time="0.000922">
|
||||
<system-out>File "./test/sample/bad_space_after_control.php" warning, line 19 - Whitespace must not follow if.
|
||||
</system-out>
|
||||
</testcase>
|
||||
</testsuite>
|
||||
<testsuite name="MetricsTest" file="/workspace/phpcheckstyle/test/MetricsTest.php" tests="1" assertions="4" errors="0" failures="0" skipped="0" time="0.004147">
|
||||
<testcase name="testMetrics" file="/workspace/phpcheckstyle/test/MetricsTest.php" line="12" class="MetricsTest" classname="MetricsTest" assertions="4" time="0.004147">
|
||||
<system-out>File "./test/sample/bad_metrics.php" warning, line 21 - The function testMetrics's number of parameters (6) must not exceed 4.
|
||||
File "./test/sample/bad_metrics.php" info, line 55 - Line is too long. [233/160]
|
||||
File "./test/sample/bad_metrics.php" warning, line 21 - The Cyclomatic Complexity of function testMetrics is too high. [15/10]
|
||||
File "./test/sample/bad_metrics.php" warning, line 244 - The testMetrics function body length is too long. [223/200]
|
||||
</system-out>
|
||||
</testcase>
|
||||
</testsuite>
|
||||
<testsuite name="NamingTest" file="/workspace/phpcheckstyle/test/NamingTest.php" tests="2" assertions="8" errors="0" failures="0" skipped="0" time="0.002697">
|
||||
<testcase name="testNaming" file="/workspace/phpcheckstyle/test/NamingTest.php" line="12" class="NamingTest" classname="NamingTest" assertions="4" time="0.001426">
|
||||
<system-out>File "./test/sample/_bad_naming.php" error, line 11 - Constant _badly_named_constant name should follow the pattern /^[A-Z][A-Z0-9_]*$/.
|
||||
File "./test/sample/_bad_naming.php" error, line 13 - Constant bad_CONST name should follow the pattern /^[A-Z][A-Z0-9_]*$/.
|
||||
File "./test/sample/_bad_naming.php" warning, line 17 - Top level variable $XXX name should follow the pattern /^[a-z_][a-zA-Z0-9]*$/.
|
||||
File "./test/sample/_bad_naming.php" warning, line 20 - Variable x name length is too short.
|
||||
File "./test/sample/_bad_naming.php" error, line 28 - Class badlynamedclass name should follow the pattern /^[A-Z][a-zA-Z0-9_]*$/.
|
||||
File "./test/sample/_bad_naming.php" warning, line 32 - Member variable $YYY name should follow the pattern /^[a-z_][a-zA-Z0-9]*$/.
|
||||
File "./test/sample/_bad_naming.php" warning, line 37 - The constructor name must be __construct().
|
||||
File "./test/sample/_bad_naming.php" error, line 44 - Function Badlynamedfunction name should follow the pattern /^[a-z][a-zA-Z0-9]*$/.
|
||||
File "./test/sample/_bad_naming.php" warning, line 47 - Local variable $ZZZ name should follow the pattern /^[a-z_][a-zA-Z0-9]*$/.
|
||||
File "./test/sample/_bad_naming.php" error, line 54 - Protected function Badlynamedfunction2 name should follow the pattern /^[a-z][a-zA-Z0-9]*$/.
|
||||
File "./test/sample/_bad_naming.php" error, line 61 - Private function badlynamedfunction3 name should follow the pattern /^_[a-z][a-zA-Z0-9]*$/.
|
||||
File "./test/sample/_bad_naming.php" error, line 70 - Interface _badlynamedinterface name should follow the pattern /^[A-Z][a-zA-Z0-9_]*$/.
|
||||
File "./test/sample/_bad_naming.php" error, line 75 - File _bad_naming.php name should follow the pattern /^[a-zA-Z][a-zA-Z0-9._]*$/.
|
||||
</system-out>
|
||||
</testcase>
|
||||
<testcase name="testFunctionNaming" file="/workspace/phpcheckstyle/test/NamingTest.php" line="32" class="NamingTest" classname="NamingTest" assertions="4" time="0.001271"/>
|
||||
</testsuite>
|
||||
<testsuite name="OptimizationTest" file="/workspace/phpcheckstyle/test/OptimizationTest.php" tests="1" assertions="4" errors="0" failures="0" skipped="0" time="0.000994">
|
||||
<testcase name="testTextAfterClosingTag" file="/workspace/phpcheckstyle/test/OptimizationTest.php" line="12" class="OptimizationTest" classname="OptimizationTest" assertions="4" time="0.000994">
|
||||
<system-out>File "./test/sample/bad_optimisation.php" warning, line 18 - count function must not be used inside a loop.
|
||||
File "./test/sample/bad_optimisation.php" warning, line 23 - count function must not be used inside a loop.
|
||||
</system-out>
|
||||
</testcase>
|
||||
</testsuite>
|
||||
<testsuite name="OtherTest" file="/workspace/phpcheckstyle/test/OtherTest.php" tests="4" assertions="13" errors="0" failures="2" skipped="0" time="0.007329">
|
||||
<testcase name="testOther" file="/workspace/phpcheckstyle/test/OtherTest.php" line="12" class="OtherTest" classname="OtherTest" assertions="4" time="0.005251">
|
||||
<failure type="PHPUnit\Framework\ExpectationFailedException">OtherTest::testOther
|
||||
We expect 20 warnings
|
||||
Failed asserting that 19 matches expected 20.
|
||||
|
||||
/workspace/phpcheckstyle/test/OtherTest.php:24</failure>
|
||||
<system-out>File "./test/sample/bad_other.php" warning, line 17 - All arguments with default values must be at the end of the block or statement.
|
||||
File "./test/sample/bad_other.php" warning, line 21 - Errors must not be silenced when calling a function.
|
||||
File "./test/sample/bad_other.php" warning, line 23 - Prefer single-quoted strings when you don't need string interpolation.
|
||||
File "./test/sample/bad_other.php" warning, line 23 - Encapsed variables must not be used inside a string.
|
||||
File "./test/sample/bad_other.php" warning, line 23 - Encapsed variables must not be used inside a string.
|
||||
File "./test/sample/bad_other.php" warning, line 23 - Prefer single-quoted strings when you don't need string interpolation.
|
||||
File "./test/sample/bad_other.php" warning, line 37 - TODO: Show todos
|
||||
File "./test/sample/bad_other.php" warning, line 40 - Avoid empty statements (;;).
|
||||
File "./test/sample/bad_other.php" warning, line 42 - Boolean operators (&&) must be used instead of logical operators (AND).
|
||||
File "./test/sample/bad_other.php" warning, line 42 - Empty if block.
|
||||
File "./test/sample/bad_other.php" warning, line 48 - Heredoc syntax must not be used.
|
||||
File "./test/sample/bad_other.php" warning, line 52 - The statement if must contain its code within a {} block.
|
||||
File "./test/sample/bad_other.php" warning, line 54 - Consider using a strict comparison operator instead of ==.
|
||||
File "./test/sample/bad_other.php" warning, line 54 - The statement while must contain its code within a {} block.
|
||||
File "./test/sample/bad_other.php" warning, line 66 - The switch statement must have a default case.
|
||||
File "./test/sample/bad_other.php" warning, line 79 - The default case of a switch statement must be located after all other cases.
|
||||
File "./test/sample/bad_other.php" warning, line 93 - Unary operators (++ or --) must not be used inside a control statement
|
||||
File "./test/sample/bad_other.php" warning, line 95 - Assigments (=) must not be used inside a control statement.
|
||||
File "./test/sample/bad_other.php" warning, line 106 - File ./test/sample/bad_other.php must not have multiple class declarations.
|
||||
</system-out>
|
||||
</testcase>
|
||||
<testcase name="testException" file="/workspace/phpcheckstyle/test/OtherTest.php" line="31" class="OtherTest" classname="OtherTest" assertions="1" time="0.000751">
|
||||
<failure type="PHPUnit\Framework\ExpectationFailedException">OtherTest::testException
|
||||
We expect 1 error
|
||||
Failed asserting that 0 matches expected 1.
|
||||
|
||||
/workspace/phpcheckstyle/test/OtherTest.php:40</failure>
|
||||
</testcase>
|
||||
<testcase name="testEmpty" file="/workspace/phpcheckstyle/test/OtherTest.php" line="50" class="OtherTest" classname="OtherTest" assertions="4" time="0.000427">
|
||||
<system-out>File "./test/sample/empty.php" warning, line 1 - The file ./test/sample/empty.php is empty.
|
||||
</system-out>
|
||||
</testcase>
|
||||
<testcase name="testSwitchCaseNeedBreak" file="/workspace/phpcheckstyle/test/OtherTest.php" line="69" class="OtherTest" classname="OtherTest" assertions="4" time="0.000901">
|
||||
<system-out>File "./test/sample/switch_multi_case.php" warning, line 10 - The case statement must contain a break.
|
||||
</system-out>
|
||||
</testcase>
|
||||
</testsuite>
|
||||
<testsuite name="PHPTagsTest" file="/workspace/phpcheckstyle/test/PHPTagsTest.php" tests="2" assertions="8" errors="0" failures="0" skipped="0" time="0.001272">
|
||||
<testcase name="testTextAfterClosingTag" file="/workspace/phpcheckstyle/test/PHPTagsTest.php" line="12" class="PHPTagsTest" classname="PHPTagsTest" assertions="4" time="0.000641">
|
||||
<system-out>File "./test/sample/bad_php_tags_text_after_end.php" warning, line 9 - A PHP close tag must not be included at the end of the file.
|
||||
</system-out>
|
||||
</testcase>
|
||||
<testcase name="testClosingTagNotNeeded" file="/workspace/phpcheckstyle/test/PHPTagsTest.php" line="30" class="PHPTagsTest" classname="PHPTagsTest" assertions="4" time="0.000631">
|
||||
<system-out>File "./test/sample/bad_php_tags_end_not_needed.php" warning, line 1 - PHP tag should be at the beginning of the line.
|
||||
</system-out>
|
||||
</testcase>
|
||||
</testsuite>
|
||||
<testsuite name="ProhibitedTest" file="/workspace/phpcheckstyle/test/ProhibitedTest.php" tests="1" assertions="4" errors="0" failures="0" skipped="0" time="0.000938">
|
||||
<testcase name="testProhibited" file="/workspace/phpcheckstyle/test/ProhibitedTest.php" line="13" class="ProhibitedTest" classname="ProhibitedTest" assertions="4" time="0.000938">
|
||||
<system-out>File "./test/sample/bad_prohibited.php" warning, line 18 - The function exec must not be called.
|
||||
File "./test/sample/bad_prohibited.php" warning, line 20 - Token T_PRINT must not be used.
|
||||
</system-out>
|
||||
</testcase>
|
||||
</testsuite>
|
||||
<testsuite name="StrictCompareTest" file="/workspace/phpcheckstyle/test/StrictCompareTest.php" tests="1" assertions="4" errors="0" failures="0" skipped="0" time="0.001578">
|
||||
<testcase name="testStrictCompare" file="/workspace/phpcheckstyle/test/StrictCompareTest.php" line="12" class="StrictCompareTest" classname="StrictCompareTest" assertions="4" time="0.001578">
|
||||
<system-out>File "./test/sample/bad_strictcompare.php" warning, line 14 - Consider using a strict comparison operator instead of ==.
|
||||
File "./test/sample/bad_strictcompare.php" warning, line 19 - Consider using a strict comparison operator instead of !=.
|
||||
File "./test/sample/bad_strictcompare.php" warning, line 24 - Consider using a strict comparison operator instead of ==.
|
||||
File "./test/sample/bad_strictcompare.php" warning, line 29 - Consider using a strict comparison operator instead of ==.
|
||||
</system-out>
|
||||
</testcase>
|
||||
</testsuite>
|
||||
<testsuite name="UnusedTest" file="/workspace/phpcheckstyle/test/UnusedTest.php" tests="2" assertions="8" errors="0" failures="0" skipped="0" time="0.001835">
|
||||
<testcase name="testGoodUnused" file="/workspace/phpcheckstyle/test/UnusedTest.php" line="13" class="UnusedTest" classname="UnusedTest" assertions="4" time="0.000940"/>
|
||||
<testcase name="testBadUnused" file="/workspace/phpcheckstyle/test/UnusedTest.php" line="32" class="UnusedTest" classname="UnusedTest" assertions="4" time="0.000895">
|
||||
<system-out>File "./test/sample/bad_unused.php" warning, line 23 - Function _testUnused has unused code after RETURN.
|
||||
File "./test/sample/bad_unused.php" warning, line 27 - The function _testUnused parameter $b is not used.
|
||||
File "./test/sample/bad_unused.php" warning, line 18 - Unused private function: _testUnused.
|
||||
File "./test/sample/bad_unused.php" warning, line 20 - Undeclared or unused variable: $c.
|
||||
</system-out>
|
||||
</testcase>
|
||||
</testsuite>
|
||||
</testsuite>
|
||||
</testsuite>
|
||||
</testsuites>
|
||||
59
__tests__/fixtures/golang-json.json
Normal file
59
__tests__/fixtures/golang-json.json
Normal file
@@ -0,0 +1,59 @@
|
||||
{"Time":"2025-04-22T08:59:55.364618802-05:00","Action":"start","Package":"_/home/james_t/git/test-reporter/reports/go"}
|
||||
{"Time":"2025-04-22T08:59:55.371779289-05:00","Action":"run","Package":"_/home/james_t/git/test-reporter/reports/go","Test":"TestPassing"}
|
||||
{"Time":"2025-04-22T08:59:55.371805677-05:00","Action":"output","Package":"_/home/james_t/git/test-reporter/reports/go","Test":"TestPassing","Output":"=== RUN TestPassing\n"}
|
||||
{"Time":"2025-04-22T08:59:55.428201983-05:00","Action":"output","Package":"_/home/james_t/git/test-reporter/reports/go","Test":"TestPassing","Output":" calculator_test.go:11: pass!\n"}
|
||||
{"Time":"2025-04-22T08:59:55.428265529-05:00","Action":"output","Package":"_/home/james_t/git/test-reporter/reports/go","Test":"TestPassing","Output":"--- PASS: TestPassing (0.06s)\n"}
|
||||
{"Time":"2025-04-22T08:59:55.428285649-05:00","Action":"pass","Package":"_/home/james_t/git/test-reporter/reports/go","Test":"TestPassing","Elapsed":0.06}
|
||||
{"Time":"2025-04-22T08:59:55.428299886-05:00","Action":"run","Package":"_/home/james_t/git/test-reporter/reports/go","Test":"TestFailing"}
|
||||
{"Time":"2025-04-22T08:59:55.428309029-05:00","Action":"output","Package":"_/home/james_t/git/test-reporter/reports/go","Test":"TestFailing","Output":"=== RUN TestFailing\n"}
|
||||
{"Time":"2025-04-22T08:59:56.317425091-05:00","Action":"output","Package":"_/home/james_t/git/test-reporter/reports/go","Test":"TestFailing","Output":" calculator_test.go:19: expected 1+1 = 3, got 2\n"}
|
||||
{"Time":"2025-04-22T08:59:56.31748077-05:00","Action":"output","Package":"_/home/james_t/git/test-reporter/reports/go","Test":"TestFailing","Output":"--- FAIL: TestFailing (0.89s)\n"}
|
||||
{"Time":"2025-04-22T08:59:56.317493452-05:00","Action":"fail","Package":"_/home/james_t/git/test-reporter/reports/go","Test":"TestFailing","Elapsed":0.89}
|
||||
{"Time":"2025-04-22T08:59:56.317506107-05:00","Action":"run","Package":"_/home/james_t/git/test-reporter/reports/go","Test":"TestPanicInsideFunction"}
|
||||
{"Time":"2025-04-22T08:59:56.317514487-05:00","Action":"output","Package":"_/home/james_t/git/test-reporter/reports/go","Test":"TestPanicInsideFunction","Output":"=== RUN TestPanicInsideFunction\n"}
|
||||
{"Time":"2025-04-22T08:59:56.317530448-05:00","Action":"output","Package":"_/home/james_t/git/test-reporter/reports/go","Test":"TestPanicInsideFunction","Output":" calculator_test.go:76: caught panic: runtime error: integer divide by zero\n"}
|
||||
{"Time":"2025-04-22T08:59:56.317541866-05:00","Action":"output","Package":"_/home/james_t/git/test-reporter/reports/go","Test":"TestPanicInsideFunction","Output":"--- FAIL: TestPanicInsideFunction (0.00s)\n"}
|
||||
{"Time":"2025-04-22T08:59:56.317552981-05:00","Action":"fail","Package":"_/home/james_t/git/test-reporter/reports/go","Test":"TestPanicInsideFunction","Elapsed":0}
|
||||
{"Time":"2025-04-22T08:59:56.317561057-05:00","Action":"run","Package":"_/home/james_t/git/test-reporter/reports/go","Test":"TestPanicInsideTest"}
|
||||
{"Time":"2025-04-22T08:59:56.317568742-05:00","Action":"output","Package":"_/home/james_t/git/test-reporter/reports/go","Test":"TestPanicInsideTest","Output":"=== RUN TestPanicInsideTest\n"}
|
||||
{"Time":"2025-04-22T08:59:56.317584113-05:00","Action":"output","Package":"_/home/james_t/git/test-reporter/reports/go","Test":"TestPanicInsideTest","Output":" calculator_test.go:76: caught panic: bad stuff\n"}
|
||||
{"Time":"2025-04-22T08:59:56.317598524-05:00","Action":"output","Package":"_/home/james_t/git/test-reporter/reports/go","Test":"TestPanicInsideTest","Output":"--- FAIL: TestPanicInsideTest (0.00s)\n"}
|
||||
{"Time":"2025-04-22T08:59:56.317608268-05:00","Action":"fail","Package":"_/home/james_t/git/test-reporter/reports/go","Test":"TestPanicInsideTest","Elapsed":0}
|
||||
{"Time":"2025-04-22T08:59:56.317615472-05:00","Action":"run","Package":"_/home/james_t/git/test-reporter/reports/go","Test":"TestSkipped"}
|
||||
{"Time":"2025-04-22T08:59:56.317623959-05:00","Action":"output","Package":"_/home/james_t/git/test-reporter/reports/go","Test":"TestSkipped","Output":"=== RUN TestSkipped\n"}
|
||||
{"Time":"2025-04-22T08:59:57.256475698-05:00","Action":"output","Package":"_/home/james_t/git/test-reporter/reports/go","Test":"TestSkipped","Output":" calculator_test.go:45: skipping test\n"}
|
||||
{"Time":"2025-04-22T08:59:57.256536372-05:00","Action":"output","Package":"_/home/james_t/git/test-reporter/reports/go","Test":"TestSkipped","Output":"--- SKIP: TestSkipped (0.94s)\n"}
|
||||
{"Time":"2025-04-22T08:59:57.256549142-05:00","Action":"skip","Package":"_/home/james_t/git/test-reporter/reports/go","Test":"TestSkipped","Elapsed":0.94}
|
||||
{"Time":"2025-04-22T08:59:57.256562053-05:00","Action":"run","Package":"_/home/james_t/git/test-reporter/reports/go","Test":"TestCases"}
|
||||
{"Time":"2025-04-22T08:59:57.256569388-05:00","Action":"output","Package":"_/home/james_t/git/test-reporter/reports/go","Test":"TestCases","Output":"=== RUN TestCases\n"}
|
||||
{"Time":"2025-04-22T08:59:57.256580104-05:00","Action":"run","Package":"_/home/james_t/git/test-reporter/reports/go","Test":"TestCases/1_+_2_=_3"}
|
||||
{"Time":"2025-04-22T08:59:57.256587408-05:00","Action":"output","Package":"_/home/james_t/git/test-reporter/reports/go","Test":"TestCases/1_+_2_=_3","Output":"=== RUN TestCases/1_+_2_=_3\n"}
|
||||
{"Time":"2025-04-22T08:59:57.653005399-05:00","Action":"run","Package":"_/home/james_t/git/test-reporter/reports/go","Test":"TestCases/4_+_7_=_11"}
|
||||
{"Time":"2025-04-22T08:59:57.653036336-05:00","Action":"output","Package":"_/home/james_t/git/test-reporter/reports/go","Test":"TestCases/4_+_7_=_11","Output":"=== RUN TestCases/4_+_7_=_11\n"}
|
||||
{"Time":"2025-04-22T08:59:58.112825221-05:00","Action":"run","Package":"_/home/james_t/git/test-reporter/reports/go","Test":"TestCases/2_+_3_=_4"}
|
||||
{"Time":"2025-04-22T08:59:58.112858016-05:00","Action":"output","Package":"_/home/james_t/git/test-reporter/reports/go","Test":"TestCases/2_+_3_=_4","Output":"=== RUN TestCases/2_+_3_=_4\n"}
|
||||
{"Time":"2025-04-22T08:59:58.201204209-05:00","Action":"output","Package":"_/home/james_t/git/test-reporter/reports/go","Test":"TestCases/2_+_3_=_4","Output":" calculator_test.go:67: expected 2 + 3 = 4, got 5\n"}
|
||||
{"Time":"2025-04-22T08:59:58.201245827-05:00","Action":"run","Package":"_/home/james_t/git/test-reporter/reports/go","Test":"TestCases/1_/_2_=_1"}
|
||||
{"Time":"2025-04-22T08:59:58.201255566-05:00","Action":"output","Package":"_/home/james_t/git/test-reporter/reports/go","Test":"TestCases/1_/_2_=_1","Output":"=== RUN TestCases/1_/_2_=_1\n"}
|
||||
{"Time":"2025-04-22T08:59:59.119852965-05:00","Action":"output","Package":"_/home/james_t/git/test-reporter/reports/go","Test":"TestCases/1_/_2_=_1","Output":" calculator_test.go:67: expected 1 / 2 = 1, got 0\n"}
|
||||
{"Time":"2025-04-22T08:59:59.119877603-05:00","Action":"run","Package":"_/home/james_t/git/test-reporter/reports/go","Test":"TestCases/9_/_3_=_3"}
|
||||
{"Time":"2025-04-22T08:59:59.119879955-05:00","Action":"output","Package":"_/home/james_t/git/test-reporter/reports/go","Test":"TestCases/9_/_3_=_3","Output":"=== RUN TestCases/9_/_3_=_3\n"}
|
||||
{"Time":"2025-04-22T08:59:59.460576385-05:00","Action":"run","Package":"_/home/james_t/git/test-reporter/reports/go","Test":"TestCases/14_/_7_=_2"}
|
||||
{"Time":"2025-04-22T08:59:59.460607599-05:00","Action":"output","Package":"_/home/james_t/git/test-reporter/reports/go","Test":"TestCases/14_/_7_=_2","Output":"=== RUN TestCases/14_/_7_=_2\n"}
|
||||
{"Time":"2025-04-22T08:59:59.504952672-05:00","Action":"output","Package":"_/home/james_t/git/test-reporter/reports/go","Test":"TestCases","Output":"--- FAIL: TestCases (2.25s)\n"}
|
||||
{"Time":"2025-04-22T08:59:59.504995938-05:00","Action":"output","Package":"_/home/james_t/git/test-reporter/reports/go","Test":"TestCases/1_+_2_=_3","Output":" --- PASS: TestCases/1_+_2_=_3 (0.40s)\n"}
|
||||
{"Time":"2025-04-22T08:59:59.505006062-05:00","Action":"pass","Package":"_/home/james_t/git/test-reporter/reports/go","Test":"TestCases/1_+_2_=_3","Elapsed":0.4}
|
||||
{"Time":"2025-04-22T08:59:59.505017551-05:00","Action":"output","Package":"_/home/james_t/git/test-reporter/reports/go","Test":"TestCases/4_+_7_=_11","Output":" --- PASS: TestCases/4_+_7_=_11 (0.46s)\n"}
|
||||
{"Time":"2025-04-22T08:59:59.505026099-05:00","Action":"pass","Package":"_/home/james_t/git/test-reporter/reports/go","Test":"TestCases/4_+_7_=_11","Elapsed":0.46}
|
||||
{"Time":"2025-04-22T08:59:59.505033963-05:00","Action":"output","Package":"_/home/james_t/git/test-reporter/reports/go","Test":"TestCases/2_+_3_=_4","Output":" --- FAIL: TestCases/2_+_3_=_4 (0.09s)\n"}
|
||||
{"Time":"2025-04-22T08:59:59.505042238-05:00","Action":"fail","Package":"_/home/james_t/git/test-reporter/reports/go","Test":"TestCases/2_+_3_=_4","Elapsed":0.09}
|
||||
{"Time":"2025-04-22T08:59:59.505050917-05:00","Action":"output","Package":"_/home/james_t/git/test-reporter/reports/go","Test":"TestCases/1_/_2_=_1","Output":" --- FAIL: TestCases/1_/_2_=_1 (0.92s)\n"}
|
||||
{"Time":"2025-04-22T08:59:59.505059901-05:00","Action":"fail","Package":"_/home/james_t/git/test-reporter/reports/go","Test":"TestCases/1_/_2_=_1","Elapsed":0.92}
|
||||
{"Time":"2025-04-22T08:59:59.505068125-05:00","Action":"output","Package":"_/home/james_t/git/test-reporter/reports/go","Test":"TestCases/9_/_3_=_3","Output":" --- PASS: TestCases/9_/_3_=_3 (0.34s)\n"}
|
||||
{"Time":"2025-04-22T08:59:59.505076976-05:00","Action":"pass","Package":"_/home/james_t/git/test-reporter/reports/go","Test":"TestCases/9_/_3_=_3","Elapsed":0.34}
|
||||
{"Time":"2025-04-22T08:59:59.5050845-05:00","Action":"output","Package":"_/home/james_t/git/test-reporter/reports/go","Test":"TestCases/14_/_7_=_2","Output":" --- PASS: TestCases/14_/_7_=_2 (0.04s)\n"}
|
||||
{"Time":"2025-04-22T08:59:59.505091554-05:00","Action":"pass","Package":"_/home/james_t/git/test-reporter/reports/go","Test":"TestCases/14_/_7_=_2","Elapsed":0.04}
|
||||
{"Time":"2025-04-22T08:59:59.505098998-05:00","Action":"fail","Package":"_/home/james_t/git/test-reporter/reports/go","Test":"TestCases","Elapsed":2.25}
|
||||
{"Time":"2025-04-22T08:59:59.505107502-05:00","Action":"output","Package":"_/home/james_t/git/test-reporter/reports/go","Output":"FAIL\n"}
|
||||
{"Time":"2025-04-22T08:59:59.505552861-05:00","Action":"output","Package":"_/home/james_t/git/test-reporter/reports/go","Output":"FAIL\t_/home/james_t/git/test-reporter/reports/go\t4.141s\n"}
|
||||
{"Time":"2025-04-22T08:59:59.505584529-05:00","Action":"fail","Package":"_/home/james_t/git/test-reporter/reports/go","Elapsed":4.141}
|
||||
6
__tests__/fixtures/jest-junit-eslint.xml
Normal file
6
__tests__/fixtures/jest-junit-eslint.xml
Normal file
@@ -0,0 +1,6 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<testsuites>
|
||||
<testsuite package="org.eslint" time="0" tests="1" errors="0" name="test.jsx">
|
||||
<testcase time="0" name="test.jsx" classname="test" />
|
||||
</testsuite>
|
||||
</testsuites>
|
||||
10
__tests__/fixtures/junit-with-message.xml
Normal file
10
__tests__/fixtures/junit-with-message.xml
Normal file
@@ -0,0 +1,10 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<testsuites tests="1" failures="1" disabled="0" errors="0" time="0.001" name="Failure">
|
||||
<testsuite name="Test" tests="6" failures="1" disabled="0" errors="0" time="0.001">
|
||||
<testcase name="Test" status="run" time="0" classname="Fails">
|
||||
<failure message="error" type=""><![CDATA[error.cpp:01
|
||||
Expected: true
|
||||
Which is: false >]]></failure>
|
||||
</testcase>
|
||||
</testsuite>
|
||||
</testsuites>
|
||||
158
__tests__/fixtures/mocha-json.json
Normal file
158
__tests__/fixtures/mocha-json.json
Normal file
@@ -0,0 +1,158 @@
|
||||
{
|
||||
"stats": {
|
||||
"suites": 3,
|
||||
"tests": 6,
|
||||
"passes": 1,
|
||||
"pending": 1,
|
||||
"failures": 4,
|
||||
"start": "2021-02-24T20:26:09.297Z",
|
||||
"end": "2021-02-24T20:26:09.309Z",
|
||||
"duration": 12
|
||||
},
|
||||
"tests": [
|
||||
{
|
||||
"title": "Timeout test",
|
||||
"fullTitle": "Timeout test",
|
||||
"file": "C:\\Users\\Michal\\Workspace\\dorny\\test-reporter\\reports\\mocha\\test\\second.test.js",
|
||||
"duration": 8,
|
||||
"currentRetry": 0,
|
||||
"err": {
|
||||
"stack": "Error: Timeout of 1ms exceeded. For async tests and hooks, ensure \"done()\" is called; if returning a Promise, ensure it resolves. (C:\\Users\\Michal\\Workspace\\dorny\\test-reporter\\reports\\mocha\\test\\second.test.js)\n at listOnTimeout (internal/timers.js:554:17)\n at processTimers (internal/timers.js:497:7)",
|
||||
"message": "Timeout of 1ms exceeded. For async tests and hooks, ensure \"done()\" is called; if returning a Promise, ensure it resolves. (C:\\Users\\Michal\\Workspace\\dorny\\test-reporter\\reports\\mocha\\test\\second.test.js)",
|
||||
"code": "ERR_MOCHA_TIMEOUT",
|
||||
"timeout": 1,
|
||||
"file": "C:\\Users\\Michal\\Workspace\\dorny\\test-reporter\\reports\\mocha\\test\\second.test.js"
|
||||
}
|
||||
},
|
||||
{
|
||||
"title": "Skipped test",
|
||||
"fullTitle": "Skipped test",
|
||||
"file": "C:\\Users\\Michal\\Workspace\\dorny\\test-reporter\\reports\\mocha\\test\\second.test.js",
|
||||
"currentRetry": 0,
|
||||
"err": {}
|
||||
},
|
||||
{
|
||||
"title": "Passing test",
|
||||
"fullTitle": "Test 1 Passing test",
|
||||
"file": "C:\\Users\\Michal\\Workspace\\dorny\\test-reporter\\reports\\mocha\\test\\main.test.js",
|
||||
"duration": 0,
|
||||
"currentRetry": 0,
|
||||
"speed": "fast",
|
||||
"err": {}
|
||||
},
|
||||
{
|
||||
"title": "Failing test",
|
||||
"fullTitle": "Test 1 Test 1.1 Failing test",
|
||||
"file": "C:\\Users\\Michal\\Workspace\\dorny\\test-reporter\\reports\\mocha\\test\\main.test.js",
|
||||
"duration": 1,
|
||||
"currentRetry": 0,
|
||||
"err": {
|
||||
"stack": "AssertionError [ERR_ASSERTION]: Expected values to be strictly equal:\n\nfalse !== true\n\n at Context.<anonymous> (test\\main.test.js:11:14)\n at processImmediate (internal/timers.js:461:21)",
|
||||
"message": "Expected values to be strictly equal:\n\nfalse !== true\n",
|
||||
"generatedMessage": true,
|
||||
"name": "AssertionError",
|
||||
"code": "ERR_ASSERTION",
|
||||
"actual": "false",
|
||||
"expected": "true",
|
||||
"operator": "strictEqual"
|
||||
}
|
||||
},
|
||||
{
|
||||
"title": "Exception in target unit",
|
||||
"fullTitle": "Test 1 Test 1.1 Exception in target unit",
|
||||
"file": "C:\\Users\\Michal\\Workspace\\dorny\\test-reporter\\reports\\mocha\\test\\main.test.js",
|
||||
"duration": 0,
|
||||
"currentRetry": 0,
|
||||
"err": {
|
||||
"stack": "Error: Some error\n at Object.throwError (lib\\main.js:2:9)\n at Context.<anonymous> (test\\main.test.js:15:11)\n at processImmediate (internal/timers.js:461:21)",
|
||||
"message": "Some error"
|
||||
}
|
||||
},
|
||||
{
|
||||
"title": "Exception in test",
|
||||
"fullTitle": "Test 2 Exception in test",
|
||||
"file": "C:\\Users\\Michal\\Workspace\\dorny\\test-reporter\\reports\\mocha\\test\\main.test.js",
|
||||
"duration": 0,
|
||||
"currentRetry": 0,
|
||||
"err": {
|
||||
"stack": "Error: Some error\n at Context.<anonymous> (test\\main.test.js:22:11)\n at processImmediate (internal/timers.js:461:21)",
|
||||
"message": "Some error"
|
||||
}
|
||||
}
|
||||
],
|
||||
"pending": [
|
||||
{
|
||||
"title": "Skipped test",
|
||||
"fullTitle": "Skipped test",
|
||||
"file": "C:\\Users\\Michal\\Workspace\\dorny\\test-reporter\\reports\\mocha\\test\\second.test.js",
|
||||
"currentRetry": 0,
|
||||
"err": {}
|
||||
}
|
||||
],
|
||||
"failures": [
|
||||
{
|
||||
"title": "Timeout test",
|
||||
"fullTitle": "Timeout test",
|
||||
"file": "C:\\Users\\Michal\\Workspace\\dorny\\test-reporter\\reports\\mocha\\test\\second.test.js",
|
||||
"duration": 8,
|
||||
"currentRetry": 0,
|
||||
"err": {
|
||||
"stack": "Error: Timeout of 1ms exceeded. For async tests and hooks, ensure \"done()\" is called; if returning a Promise, ensure it resolves. (C:\\Users\\Michal\\Workspace\\dorny\\test-reporter\\reports\\mocha\\test\\second.test.js)\n at listOnTimeout (internal/timers.js:554:17)\n at processTimers (internal/timers.js:497:7)",
|
||||
"message": "Timeout of 1ms exceeded. For async tests and hooks, ensure \"done()\" is called; if returning a Promise, ensure it resolves. (C:\\Users\\Michal\\Workspace\\dorny\\test-reporter\\reports\\mocha\\test\\second.test.js)",
|
||||
"code": "ERR_MOCHA_TIMEOUT",
|
||||
"timeout": 1,
|
||||
"file": "C:\\Users\\Michal\\Workspace\\dorny\\test-reporter\\reports\\mocha\\test\\second.test.js"
|
||||
}
|
||||
},
|
||||
{
|
||||
"title": "Failing test",
|
||||
"fullTitle": "Test 1 Test 1.1 Failing test",
|
||||
"file": "C:\\Users\\Michal\\Workspace\\dorny\\test-reporter\\reports\\mocha\\test\\main.test.js",
|
||||
"duration": 1,
|
||||
"currentRetry": 0,
|
||||
"err": {
|
||||
"stack": "AssertionError [ERR_ASSERTION]: Expected values to be strictly equal:\n\nfalse !== true\n\n at Context.<anonymous> (test\\main.test.js:11:14)\n at processImmediate (internal/timers.js:461:21)",
|
||||
"message": "Expected values to be strictly equal:\n\nfalse !== true\n",
|
||||
"generatedMessage": true,
|
||||
"name": "AssertionError",
|
||||
"code": "ERR_ASSERTION",
|
||||
"actual": "false",
|
||||
"expected": "true",
|
||||
"operator": "strictEqual"
|
||||
}
|
||||
},
|
||||
{
|
||||
"title": "Exception in target unit",
|
||||
"fullTitle": "Test 1 Test 1.1 Exception in target unit",
|
||||
"file": "C:\\Users\\Michal\\Workspace\\dorny\\test-reporter\\reports\\mocha\\test\\main.test.js",
|
||||
"duration": 0,
|
||||
"currentRetry": 0,
|
||||
"err": {
|
||||
"stack": "Error: Some error\n at Object.throwError (lib\\main.js:2:9)\n at Context.<anonymous> (test\\main.test.js:15:11)\n at processImmediate (internal/timers.js:461:21)",
|
||||
"message": "Some error"
|
||||
}
|
||||
},
|
||||
{
|
||||
"title": "Exception in test",
|
||||
"fullTitle": "Test 2 Exception in test",
|
||||
"file": "C:\\Users\\Michal\\Workspace\\dorny\\test-reporter\\reports\\mocha\\test\\main.test.js",
|
||||
"duration": 0,
|
||||
"currentRetry": 0,
|
||||
"err": {
|
||||
"stack": "Error: Some error\n at Context.<anonymous> (test\\main.test.js:22:11)\n at processImmediate (internal/timers.js:461:21)",
|
||||
"message": "Some error"
|
||||
}
|
||||
}
|
||||
],
|
||||
"passes": [
|
||||
{
|
||||
"title": "Passing test",
|
||||
"fullTitle": "Test 1 Passing test",
|
||||
"file": "C:\\Users\\Michal\\Workspace\\dorny\\test-reporter\\reports\\mocha\\test\\main.test.js",
|
||||
"duration": 0,
|
||||
"currentRetry": 0,
|
||||
"speed": "fast",
|
||||
"err": {}
|
||||
}
|
||||
]
|
||||
}
|
||||
@@ -0,0 +1,9 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<testsuites>
|
||||
<testsuite errors="0" skipped="0" tests="4" time="0.3" timestamp="2026-01-01T16:36:10">
|
||||
<testcase classname="Kdyby\BootstrapFormRenderer\BootstrapRenderer. | KdybyTests/BootstrapFormRenderer/BootstrapRendererTest.phpt [method=testRenderingBasics]" name="Kdyby\BootstrapFormRenderer\BootstrapRenderer. | KdybyTests/BootstrapFormRenderer/BootstrapRendererTest.phpt [method=testRenderingBasics]"/>
|
||||
<testcase classname="Kdyby\BootstrapFormRenderer\BootstrapRenderer. | KdybyTests/BootstrapFormRenderer/BootstrapRendererTest.phpt [method=testRenderingIndividual]" name="Kdyby\BootstrapFormRenderer\BootstrapRenderer. | KdybyTests/BootstrapFormRenderer/BootstrapRendererTest.phpt [method=testRenderingIndividual]"/>
|
||||
<testcase classname="Kdyby\BootstrapFormRenderer\BootstrapRenderer. | KdybyTests/BootstrapFormRenderer/BootstrapRendererTest.phpt [method=testRenderingComponents]" name="Kdyby\BootstrapFormRenderer\BootstrapRenderer. | KdybyTests/BootstrapFormRenderer/BootstrapRendererTest.phpt [method=testRenderingComponents]"/>
|
||||
<testcase classname="Kdyby\BootstrapFormRenderer\BootstrapRenderer. | KdybyTests/BootstrapFormRenderer/BootstrapRendererTest.phpt [method=testMultipleFormsInTemplate]" name="Kdyby\BootstrapFormRenderer\BootstrapRenderer. | KdybyTests/BootstrapFormRenderer/BootstrapRendererTest.phpt [method=testMultipleFormsInTemplate]"/>
|
||||
</testsuite>
|
||||
</testsuites>
|
||||
83
__tests__/fixtures/nette-tester/tester-v1.7-report.xml
Normal file
83
__tests__/fixtures/nette-tester/tester-v1.7-report.xml
Normal file
@@ -0,0 +1,83 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<testsuites>
|
||||
<testsuite errors="1" skipped="3" tests="65" time="2.1" timestamp="2026-01-01T16:50:52">
|
||||
<testcase classname="tests/Framework/Dumper.toPhp.php7.phpt" name="tests/Framework/Dumper.toPhp.php7.phpt">
|
||||
<skipped/>
|
||||
</testcase>
|
||||
<testcase classname="tests/CodeCoverage/Collector.start.phpt" name="tests/CodeCoverage/Collector.start.phpt">
|
||||
<skipped/>
|
||||
</testcase>
|
||||
<testcase classname="tests/CodeCoverage/PhpParser.parse.lines.phpt" name="tests/CodeCoverage/PhpParser.parse.lines.phpt"/>
|
||||
<testcase classname="tests/CodeCoverage/PhpParser.parse.methods.phpt" name="tests/CodeCoverage/PhpParser.parse.methods.phpt"/>
|
||||
<testcase classname="tests/CodeCoverage/CloverXMLGenerator.phpt" name="tests/CodeCoverage/CloverXMLGenerator.phpt"/>
|
||||
<testcase classname="tests/CodeCoverage/PhpParser.parse.edge.phpt" name="tests/CodeCoverage/PhpParser.parse.edge.phpt"/>
|
||||
<testcase classname="tests/CodeCoverage/PhpParser.parse.lines-of-code.phpt" name="tests/CodeCoverage/PhpParser.parse.lines-of-code.phpt"/>
|
||||
<testcase classname="tests/CodeCoverage/PhpParser.parse.namespaces.phpt" name="tests/CodeCoverage/PhpParser.parse.namespaces.phpt"/>
|
||||
<testcase classname="tests/Framework/Assert.contains.phpt" name="tests/Framework/Assert.contains.phpt"/>
|
||||
<testcase classname="tests/Framework/Assert.count.phpt" name="tests/Framework/Assert.count.phpt"/>
|
||||
<testcase classname="tests/Framework/Assert.equal.phpt" name="tests/Framework/Assert.equal.phpt"/>
|
||||
<testcase classname="tests/Framework/Assert.equal.recursive.phpt [method=testSimple]" name="tests/Framework/Assert.equal.recursive.phpt [method=testSimple]"/>
|
||||
<testcase classname="tests/Framework/Assert.equal.recursive.phpt [method=testMultiple]" name="tests/Framework/Assert.equal.recursive.phpt [method=testMultiple]"/>
|
||||
<testcase classname="tests/Framework/Assert.equal.recursive.phpt [method=testDeep]" name="tests/Framework/Assert.equal.recursive.phpt [method=testDeep]"/>
|
||||
<testcase classname="tests/Framework/Assert.equal.recursive.phpt [method=testCross]" name="tests/Framework/Assert.equal.recursive.phpt [method=testCross]"/>
|
||||
<testcase classname="tests/Framework/Assert.equal.recursive.phpt [method=testThirdParty]" name="tests/Framework/Assert.equal.recursive.phpt [method=testThirdParty]"/>
|
||||
<testcase classname="tests/Framework/Assert.error.phpt" name="tests/Framework/Assert.error.phpt"/>
|
||||
<testcase classname="tests/Framework/Assert.exception.phpt" name="tests/Framework/Assert.exception.phpt"/>
|
||||
<testcase classname="tests/Framework/Assert.false.phpt" name="tests/Framework/Assert.false.phpt"/>
|
||||
<testcase classname="tests/Framework/Assert.match.phpt" name="tests/Framework/Assert.match.phpt"/>
|
||||
<testcase classname="tests/Framework/Assert.match.regexp.phpt" name="tests/Framework/Assert.match.regexp.phpt"/>
|
||||
<testcase classname="tests/Framework/Assert.nan.phpt" name="tests/Framework/Assert.nan.phpt"/>
|
||||
<testcase classname="tests/Framework/Assert.noError.phpt" name="tests/Framework/Assert.noError.phpt"/>
|
||||
<testcase classname="tests/Framework/Assert.same.phpt" name="tests/Framework/Assert.same.phpt"/>
|
||||
<testcase classname="tests/Framework/Assert.null.phpt" name="tests/Framework/Assert.null.phpt"/>
|
||||
<testcase classname="tests/Framework/Assert.true.phpt" name="tests/Framework/Assert.true.phpt"/>
|
||||
<testcase classname="tests/Framework/Assert.truthy.phpt" name="tests/Framework/Assert.truthy.phpt"/>
|
||||
<testcase classname="tests/Framework/DataProvider.load.phpt" name="tests/Framework/DataProvider.load.phpt"/>
|
||||
<testcase classname="tests/Framework/Assert.type.phpt" name="tests/Framework/Assert.type.phpt"/>
|
||||
<testcase classname="tests/Framework/DataProvider.parseAnnotation.phpt" name="tests/Framework/DataProvider.parseAnnotation.phpt"/>
|
||||
<testcase classname="tests/Framework/DataProvider.testQuery.phpt" name="tests/Framework/DataProvider.testQuery.phpt"/>
|
||||
<testcase classname="tests/Framework/DomQuery.css2Xpath.phpt" name="tests/Framework/DomQuery.css2Xpath.phpt"/>
|
||||
<testcase classname="tests/Framework/DomQuery.fromHtml.phpt" name="tests/Framework/DomQuery.fromHtml.phpt"/>
|
||||
<testcase classname="tests/Framework/DomQuery.fromXml.phpt" name="tests/Framework/DomQuery.fromXml.phpt"/>
|
||||
<testcase classname="tests/Framework/Dumper.dumpException.phpt" name="tests/Framework/Dumper.dumpException.phpt"/>
|
||||
<testcase classname="tests/Framework/Dumper.color.phpt" name="tests/Framework/Dumper.color.phpt"/>
|
||||
<testcase classname="tests/Framework/Dumper.toLine.phpt" name="tests/Framework/Dumper.toLine.phpt"/>
|
||||
<testcase classname="tests/Framework/Dumper.toPhp.recursion.phpt" name="tests/Framework/Dumper.toPhp.recursion.phpt"/>
|
||||
<testcase classname="tests/Framework/Dumper.toPhp.phpt" name="tests/Framework/Dumper.toPhp.phpt"/>
|
||||
<testcase classname="tests/Framework/FileMock.phpt" name="tests/Framework/FileMock.phpt"/>
|
||||
<testcase classname="tests/Framework/Helpers.escapeArg.phpt" name="tests/Framework/Helpers.escapeArg.phpt"/>
|
||||
<testcase classname="tests/Framework/Helpers.parseDocComment.phpt" name="tests/Framework/Helpers.parseDocComment.phpt"/>
|
||||
<testcase classname="tests/Framework/TestCase.annotationThrows.phpt" name="tests/Framework/TestCase.annotationThrows.phpt"/>
|
||||
<testcase classname="tests/Framework/TestCase.annotationThrows.setUp.tearDown.phpt" name="tests/Framework/TestCase.annotationThrows.setUp.tearDown.phpt"/>
|
||||
<testcase classname="tests/Framework/TestCase.annotationThrows.syntax.phpt" name="tests/Framework/TestCase.annotationThrows.syntax.phpt"/>
|
||||
<testcase classname="tests/Framework/TestCase.basic.phpt" name="tests/Framework/TestCase.basic.phpt"/>
|
||||
<testcase classname="tests/Framework/TestCase.dataProvider.generator.phpt" name="tests/Framework/TestCase.dataProvider.generator.phpt"/>
|
||||
<testcase classname="tests/Framework/TestCase.dataProvider.phpt" name="tests/Framework/TestCase.dataProvider.phpt"/>
|
||||
<testcase classname="tests/Framework/TestCase.invalidMethods.phpt" name="tests/Framework/TestCase.invalidMethods.phpt"/>
|
||||
<testcase classname="tests/Framework/TestCase.invalidProvider.phpt" name="tests/Framework/TestCase.invalidProvider.phpt"/>
|
||||
<testcase classname="tests/Framework/TestCase.order.error.phpt" name="tests/Framework/TestCase.order.error.phpt"/>
|
||||
<testcase classname="tests/Framework/TestCase.order.errorMuted.phpt" name="tests/Framework/TestCase.order.errorMuted.phpt"/>
|
||||
<testcase classname="tests/Framework/TestCase.order.phpt" name="tests/Framework/TestCase.order.phpt"/>
|
||||
<testcase classname="Prevent loop in error handling. The #268 regression. | tests/Framework/TestCase.ownErrorHandler.phpt" name="Prevent loop in error handling. The #268 regression. | tests/Framework/TestCase.ownErrorHandler.phpt"/>
|
||||
<testcase classname="tests/Runner/CommandLine.phpt" name="tests/Runner/CommandLine.phpt"/>
|
||||
<testcase classname="tests/Runner/HhvmPhpInterpreter.phpt" name="tests/Runner/HhvmPhpInterpreter.phpt">
|
||||
<skipped/>
|
||||
</testcase>
|
||||
<testcase classname="tests/Runner/Runner.find-tests.phpt" name="tests/Runner/Runner.find-tests.phpt"/>
|
||||
<testcase classname="tests/Runner/Job.phpt" name="tests/Runner/Job.phpt"/>
|
||||
<testcase classname="tests/Runner/ZendPhpExecutable.phpt" name="tests/Runner/ZendPhpExecutable.phpt"/>
|
||||
<testcase classname="tests/Runner/Runner.multiple.phpt" name="tests/Runner/Runner.multiple.phpt"/>
|
||||
<testcase classname="tests/Runner/Runner.edge.phpt" name="tests/Runner/Runner.edge.phpt"/>
|
||||
<testcase classname="tests/Runner/Runner.stop-on-fail.phpt" name="tests/Runner/Runner.stop-on-fail.phpt"/>
|
||||
<testcase classname="tests/Runner/Runner.multiple-fails.phpt" name="tests/Runner/Runner.multiple-fails.phpt">
|
||||
<failure message="Failed: '... in /Users/izso/Developer/nette/tester/tests/Runner/multiple-fails/...' should match
|
||||
... '..., unexpected end of file in %a%testcase-syntax-error.phptx on line ...'
|
||||
|
||||
diff '/Users/izso/Developer/nette/tester/tests/Runner/output/Runner.multiple-fails.expected' '/Users/izso/Developer/nette/tester/tests/Runner/output/Runner.multiple-fails.actual'
|
||||
|
||||
in tests/Runner/Runner.multiple-fails.phpt(78) Tester\Assert::match()"/>
|
||||
</testcase>
|
||||
<testcase classname="tests/RunnerOutput/JUnitPrinter.phpt" name="tests/RunnerOutput/JUnitPrinter.phpt"/>
|
||||
<testcase classname="tests/Runner/Runner.annotations.phpt" name="tests/Runner/Runner.annotations.phpt"/>
|
||||
</testsuite>
|
||||
</testsuites>
|
||||
23
__tests__/fixtures/phpunit/phpunit-paths.xml
Normal file
23
__tests__/fixtures/phpunit/phpunit-paths.xml
Normal file
@@ -0,0 +1,23 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<testsuites>
|
||||
<testsuite name="SampleSuite" tests="6" failures="6" time="0.006">
|
||||
<testcase name="testFailure" classname="SampleSuite" file="/home/runner/work/repo/src/Fake.php" line="42" time="0.001">
|
||||
<failure type="Exception" message="Boom">/home/runner/work/repo/src/Fake.php:42</failure>
|
||||
</testcase>
|
||||
<testcase name="testStringFailure" classname="SampleSuite" file="/home/runner/work/repo/src/Other.php" line="10" time="0.001">
|
||||
<failure>/home/runner/work/repo/src/Other.php:10</failure>
|
||||
</testcase>
|
||||
<testcase name="testParenFailure" classname="SampleSuite" file="/home/runner/work/repo/src/Paren.php" line="123" time="0.001">
|
||||
<failure>at /home/runner/work/repo/src/Paren.php(123)</failure>
|
||||
</testcase>
|
||||
<testcase name="testWindowsFailure" classname="SampleSuite" file="C:\repo\src\Win.php" line="77" time="0.001">
|
||||
<failure>C:\repo\src\Win.php:77</failure>
|
||||
</testcase>
|
||||
<testcase name="testWindowsParenFailure" classname="SampleSuite" file="C:\repo\src\WinParen.php" line="88" time="0.001">
|
||||
<failure>at C:\repo\src\WinParen.php(88)</failure>
|
||||
</testcase>
|
||||
<testcase name="testPhptFailure" classname="SampleSuite" file="/home/runner/work/repo/tests/Sample.phpt" line="12" time="0.001">
|
||||
<failure>/home/runner/work/repo/tests/Sample.phpt:12</failure>
|
||||
</testcase>
|
||||
</testsuite>
|
||||
</testsuites>
|
||||
79
__tests__/fixtures/phpunit/phpunit.xml
Normal file
79
__tests__/fixtures/phpunit/phpunit.xml
Normal file
@@ -0,0 +1,79 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<testsuites>
|
||||
<testsuite name="CLI Arguments" tests="12" assertions="12" errors="0" failures="2" skipped="0" time="0.140397">
|
||||
<testcase name="targeting-traits-with-coversclass-attribute-is-deprecated.phpt" file="/home/matteo/OSS/phpunit/tests/end-to-end/metadata/targeting-traits-with-coversclass-attribute-is-deprecated.phpt" assertions="1" time="0.068151">
|
||||
<failure type="PHPUnit\Framework\PhptAssertionFailedError">targeting-traits-with-coversclass-attribute-is-deprecated.phptFailed asserting that string matches format description.
|
||||
--- Expected
|
||||
+++ Actual
|
||||
@@ @@
|
||||
PHPUnit Started (PHPUnit 11.2-g0c2333363 using PHP 8.2.17 (cli) on Linux)
|
||||
Test Runner Configured
|
||||
Test Suite Loaded (1 test)
|
||||
+Test Runner Triggered Warning (No code coverage driver available)
|
||||
Event Facade Sealed
|
||||
Test Runner Started
|
||||
Test Suite Sorted
|
||||
@@ @@
|
||||
Test Preparation Started (PHPUnit\DeprecatedAnnotationsTestFixture\TraitTargetedWithCoversClassTest::testSomething)
|
||||
Test Prepared (PHPUnit\DeprecatedAnnotationsTestFixture\TraitTargetedWithCoversClassTest::testSomething)
|
||||
Test Passed (PHPUnit\DeprecatedAnnotationsTestFixture\TraitTargetedWithCoversClassTest::testSomething)
|
||||
-Test Runner Triggered Deprecation (Targeting a trait such as PHPUnit\TestFixture\CoveredTrait with #[CoversClass] is deprecated, please refactor your test to use #[CoversTrait] instead.)
|
||||
Test Finished (PHPUnit\DeprecatedAnnotationsTestFixture\TraitTargetedWithCoversClassTest::testSomething)
|
||||
Test Suite Finished (PHPUnit\DeprecatedAnnotationsTestFixture\TraitTargetedWithCoversClassTest, 1 test)
|
||||
Test Runner Execution Finished
|
||||
Test Runner Finished
|
||||
-PHPUnit Finished (Shell Exit Code: 0)
|
||||
+PHPUnit Finished (Shell Exit Code: 1)
|
||||
|
||||
/home/matteo/OSS/phpunit/tests/end-to-end/metadata/targeting-traits-with-coversclass-attribute-is-deprecated.phpt:28
|
||||
/home/matteo/OSS/phpunit/src/Framework/TestSuite.php:369
|
||||
/home/matteo/OSS/phpunit/src/TextUI/TestRunner.php:62
|
||||
/home/matteo/OSS/phpunit/src/TextUI/Application.php:200</failure>
|
||||
</testcase>
|
||||
<testcase name="targeting-traits-with-usesclass-attribute-is-deprecated.phpt" file="/home/matteo/OSS/phpunit/tests/end-to-end/metadata/targeting-traits-with-usesclass-attribute-is-deprecated.phpt" assertions="1" time="0.064268">
|
||||
<failure type="PHPUnit\Framework\PhptAssertionFailedError">targeting-traits-with-usesclass-attribute-is-deprecated.phptFailed asserting that string matches format description.
|
||||
--- Expected
|
||||
+++ Actual
|
||||
@@ @@
|
||||
PHPUnit Started (PHPUnit 11.2-g0c2333363 using PHP 8.2.17 (cli) on Linux)
|
||||
Test Runner Configured
|
||||
Test Suite Loaded (1 test)
|
||||
+Test Runner Triggered Warning (No code coverage driver available)
|
||||
Event Facade Sealed
|
||||
Test Runner Started
|
||||
Test Suite Sorted
|
||||
@@ @@
|
||||
Test Preparation Started (PHPUnit\DeprecatedAnnotationsTestFixture\TraitTargetedWithUsesClassTest::testSomething)
|
||||
Test Prepared (PHPUnit\DeprecatedAnnotationsTestFixture\TraitTargetedWithUsesClassTest::testSomething)
|
||||
Test Passed (PHPUnit\DeprecatedAnnotationsTestFixture\TraitTargetedWithUsesClassTest::testSomething)
|
||||
-Test Runner Triggered Deprecation (Targeting a trait such as PHPUnit\TestFixture\CoveredTrait with #[UsesClass] is deprecated, please refactor your test to use #[UsesTrait] instead.)
|
||||
Test Finished (PHPUnit\DeprecatedAnnotationsTestFixture\TraitTargetedWithUsesClassTest::testSomething)
|
||||
Test Suite Finished (PHPUnit\DeprecatedAnnotationsTestFixture\TraitTargetedWithUsesClassTest, 1 test)
|
||||
Test Runner Execution Finished
|
||||
Test Runner Finished
|
||||
-PHPUnit Finished (Shell Exit Code: 0)
|
||||
+PHPUnit Finished (Shell Exit Code: 1)
|
||||
|
||||
/home/matteo/OSS/phpunit/tests/end-to-end/metadata/targeting-traits-with-usesclass-attribute-is-deprecated.phpt:28
|
||||
/home/matteo/OSS/phpunit/src/Framework/TestSuite.php:369
|
||||
/home/matteo/OSS/phpunit/src/TextUI/TestRunner.php:62
|
||||
/home/matteo/OSS/phpunit/src/TextUI/Application.php:200</failure>
|
||||
</testcase>
|
||||
<testsuite name="PHPUnit\Event\CollectingDispatcherTest" file="/home/matteo/OSS/phpunit/tests/unit/Event/Dispatcher/CollectingDispatcherTest.php" tests="2" assertions="2" errors="0" failures="0" skipped="0" time="0.004256">
|
||||
<testcase name="testHasNoCollectedEventsWhenFlushedImmediatelyAfterCreation" file="/home/matteo/OSS/phpunit/tests/unit/Event/Dispatcher/CollectingDispatcherTest.php" line="20" class="PHPUnit\Event\CollectingDispatcherTest" classname="PHPUnit.Event.CollectingDispatcherTest" assertions="1" time="0.001441"/>
|
||||
<testcase name="testCollectsDispatchedEventsUntilFlushed" file="/home/matteo/OSS/phpunit/tests/unit/Event/Dispatcher/CollectingDispatcherTest.php" line="27" class="PHPUnit\Event\CollectingDispatcherTest" classname="PHPUnit.Event.CollectingDispatcherTest" assertions="1" time="0.002815"/>
|
||||
</testsuite>
|
||||
<testsuite name="PHPUnit\Event\DeferringDispatcherTest" file="/home/matteo/OSS/phpunit/tests/unit/Event/Dispatcher/DeferringDispatcherTest.php" tests="4" assertions="4" errors="0" failures="0" skipped="0" time="0.002928">
|
||||
<testcase name="testCollectsEventsUntilFlush" file="/home/matteo/OSS/phpunit/tests/unit/Event/Dispatcher/DeferringDispatcherTest.php" line="22" class="PHPUnit\Event\DeferringDispatcherTest" classname="PHPUnit.Event.DeferringDispatcherTest" assertions="1" time="0.001672"/>
|
||||
<testcase name="testFlushesCollectedEvents" file="/home/matteo/OSS/phpunit/tests/unit/Event/Dispatcher/DeferringDispatcherTest.php" line="35" class="PHPUnit\Event\DeferringDispatcherTest" classname="PHPUnit.Event.DeferringDispatcherTest" assertions="1" time="0.000661"/>
|
||||
<testcase name="testSubscriberCanBeRegistered" file="/home/matteo/OSS/phpunit/tests/unit/Event/Dispatcher/DeferringDispatcherTest.php" line="53" class="PHPUnit\Event\DeferringDispatcherTest" classname="PHPUnit.Event.DeferringDispatcherTest" assertions="1" time="0.000334"/>
|
||||
<testcase name="testTracerCanBeRegistered" file="/home/matteo/OSS/phpunit/tests/unit/Event/Dispatcher/DeferringDispatcherTest.php" line="69" class="PHPUnit\Event\DeferringDispatcherTest" classname="PHPUnit.Event.DeferringDispatcherTest" assertions="1" time="0.000262"/>
|
||||
</testsuite>
|
||||
<testsuite name="PHPUnit\Event\DirectDispatcherTest" file="/home/matteo/OSS/phpunit/tests/unit/Event/Dispatcher/DirectDispatcherTest.php" tests="4" assertions="4" errors="0" failures="0" skipped="0" time="0.000794">
|
||||
<testcase name="testDispatchesEventToKnownSubscribers" file="/home/matteo/OSS/phpunit/tests/unit/Event/Dispatcher/DirectDispatcherTest.php" line="24" class="PHPUnit\Event\DirectDispatcherTest" classname="PHPUnit.Event.DirectDispatcherTest" assertions="1" time="0.000170"/>
|
||||
<testcase name="testDispatchesEventToTracers" file="/home/matteo/OSS/phpunit/tests/unit/Event/Dispatcher/DirectDispatcherTest.php" line="43" class="PHPUnit\Event\DirectDispatcherTest" classname="PHPUnit.Event.DirectDispatcherTest" assertions="1" time="0.000248"/>
|
||||
<testcase name="testRegisterRejectsUnknownSubscriber" file="/home/matteo/OSS/phpunit/tests/unit/Event/Dispatcher/DirectDispatcherTest.php" line="62" class="PHPUnit\Event\DirectDispatcherTest" classname="PHPUnit.Event.DirectDispatcherTest" assertions="1" time="0.000257"/>
|
||||
<testcase name="testDispatchRejectsUnknownEventType" file="/home/matteo/OSS/phpunit/tests/unit/Event/Dispatcher/DirectDispatcherTest.php" line="73" class="PHPUnit\Event\DirectDispatcherTest" classname="PHPUnit.Event.DirectDispatcherTest" assertions="1" time="0.000119"/>
|
||||
</testsuite>
|
||||
</testsuite>
|
||||
</testsuites>
|
||||
42
__tests__/fixtures/python-xunit-pytest.xml
Normal file
42
__tests__/fixtures/python-xunit-pytest.xml
Normal file
@@ -0,0 +1,42 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<testsuites name="pytest tests">
|
||||
<testsuite name="pytest" errors="0" failures="2" skipped="2" tests="15" time="0.019"
|
||||
timestamp="2025-11-15T11:51:49.548396-05:00" hostname="Mac.hsd1.va.comcast.net">
|
||||
<properties>
|
||||
<property name="custom_prop" value="custom_val"/>
|
||||
</properties>
|
||||
<testcase classname="tests.test_lib" name="test_always_pass" time="0.002"/>
|
||||
<testcase classname="tests.test_lib" name="test_with_subtests" time="0.005"/>
|
||||
<testcase classname="tests.test_lib" name="test_parameterized[param1]" time="0.000"/>
|
||||
<testcase classname="tests.test_lib" name="test_parameterized[param2]" time="0.000"/>
|
||||
<testcase classname="tests.test_lib" name="test_always_skip" time="0.000">
|
||||
<skipped type="pytest.skip" message="skipped">/Users/mike/Projects/python-test/tests/test_lib.py:20: skipped
|
||||
</skipped>
|
||||
</testcase>
|
||||
<testcase classname="tests.test_lib" name="test_always_fail" time="0.000">
|
||||
<failure message="assert False">def test_always_fail():
|
||||
> assert False
|
||||
E assert False
|
||||
|
||||
tests/test_lib.py:25: AssertionError
|
||||
</failure>
|
||||
</testcase>
|
||||
<testcase classname="tests.test_lib" name="test_expected_failure" time="0.000">
|
||||
<skipped type="pytest.xfail" message=""/>
|
||||
</testcase>
|
||||
<testcase classname="tests.test_lib" name="test_error" time="0.000">
|
||||
<failure message="Exception: error">def test_error():
|
||||
> raise Exception("error")
|
||||
E Exception: error
|
||||
|
||||
tests/test_lib.py:32: Exception
|
||||
</failure>
|
||||
</testcase>
|
||||
<testcase classname="tests.test_lib" name="test_with_record_property" time="0.000">
|
||||
<properties>
|
||||
<property name="example_key" value="1"/>
|
||||
</properties>
|
||||
</testcase>
|
||||
<testcase classname="custom_classname" name="test_with_record_xml_attribute" time="0.000"/>
|
||||
</testsuite>
|
||||
</testsuites>
|
||||
27
__tests__/fixtures/python-xunit-unittest.xml
Normal file
27
__tests__/fixtures/python-xunit-unittest.xml
Normal file
@@ -0,0 +1,27 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<testsuite name="TestAcme-20251114214921" tests="8" file=".py" time="0.001" timestamp="2025-11-14T21:49:22" failures="1" errors="1" skipped="2">
|
||||
<testcase classname="TestAcme" name="test_always_pass" time="0.000" timestamp="2025-11-14T21:49:22" file="tests/test_lib.py" line="8"/>
|
||||
<testcase classname="TestAcme" name="test_parameterized_0_param1" time="0.001" timestamp="2025-11-14T21:49:22" file="tests/test_lib.py" line="618"/>
|
||||
<testcase classname="TestAcme" name="test_parameterized_1_param2" time="0.000" timestamp="2025-11-14T21:49:22" file="tests/test_lib.py" line="618"/>
|
||||
<testcase classname="TestAcme" name="test_with_subtests" time="0.000" timestamp="2025-11-14T21:49:22" file="tests/test_lib.py" line="11"/>
|
||||
<testcase classname="TestAcme" name="test_always_fail" time="0.000" timestamp="2025-11-14T21:49:22" file="tests/test_lib.py" line="23">
|
||||
<failure type="AssertionError" message="failed"><![CDATA[Traceback (most recent call last):
|
||||
File "/Users/foo/Projects/python-test/tests/test_lib.py", line 24, in test_always_fail
|
||||
self.fail("failed")
|
||||
AssertionError: failed
|
||||
]]></failure>
|
||||
</testcase>
|
||||
<testcase classname="TestAcme" name="test_error" time="0.000" timestamp="2025-11-14T21:49:22" file="tests/test_lib.py" line="30">
|
||||
<error type="Exception" message="error"><![CDATA[Traceback (most recent call last):
|
||||
File "/Users/foo/Projects/python-test/tests/test_lib.py", line 31, in test_error
|
||||
raise Exception("error")
|
||||
Exception: error
|
||||
]]></error>
|
||||
</testcase>
|
||||
<testcase classname="TestAcme" name="test_always_skip" time="0.000" timestamp="2025-11-14T21:49:22" file="tests/test_lib.py" line="20">
|
||||
<skipped type="skip" message="skipped"/>
|
||||
</testcase>
|
||||
<testcase classname="TestAcme" name="test_expected_failure" time="0.000" timestamp="2025-11-14T21:49:22" file="tests/test_lib.py" line="26">
|
||||
<skipped type="XFAIL" message="expected failure: (<class 'AssertionError'>, AssertionError('expected failure'), <traceback object at 0x100c125c0>)"/>
|
||||
</testcase>
|
||||
</testsuite>
|
||||
53
__tests__/fixtures/rspec-json.json
Normal file
53
__tests__/fixtures/rspec-json.json
Normal file
@@ -0,0 +1,53 @@
|
||||
{
|
||||
"version": "3.13.0",
|
||||
"examples": [
|
||||
{
|
||||
"id": "./spec/config/check_env_vars_spec.rb[1:1:1:1:1]",
|
||||
"description": "logs success message",
|
||||
"full_description": "CheckEnvVars#call when all env vars are defined behaves like success load logs success message",
|
||||
"status": "passed",
|
||||
"file_path": "./spec/config/check_env_vars_spec.rb",
|
||||
"line_number": 12,
|
||||
"run_time": 0.079159625,
|
||||
"pending_message": null
|
||||
},
|
||||
{
|
||||
"id": "./spec/config/check_env_vars_spec.rb[1:1:1:1:2]",
|
||||
"description": "fails in assertion",
|
||||
"full_description": "CheckEnvVars#call when all env vars are defined behaves like success load fails in assertion",
|
||||
"status": "failed",
|
||||
"file_path": "./spec/config/check_env_vars_spec.rb",
|
||||
"line_number": 17,
|
||||
"run_time": 0.004411051,
|
||||
"pending_message": null,
|
||||
"exception": {
|
||||
"class": "RSpec::Mocks::MockExpectationError",
|
||||
"message": "(#ActiveSupport::BroadcastLogger:0x00007f1007fedf58).debug(\"All config env vars exist\")\n expected: 0 times with arguments: (\"All config env vars exist\")\n received: 1 time with arguments: (\"All config env vars exist\")",
|
||||
"backtrace": [
|
||||
"/usr/local/bundle/ruby/3.3.0/gems/net-http-0.4.1/lib/net/http.rb:1603:in `initialize'",
|
||||
"./config/check_env_vars.rb:11:in `call'",
|
||||
"./spec/config/check_env_vars_spec.rb:7:in `block (3 levels) in \u003ctop (required)\u003e'",
|
||||
"./spec/config/check_env_vars_spec.rb:19:in `block (4 levels) in \u003ctop (required)\u003e'"
|
||||
]
|
||||
}
|
||||
},
|
||||
{
|
||||
"id": "./spec/config/check_env_vars_spec.rb[1:1:1:1:4]",
|
||||
"description": "skips the test",
|
||||
"full_description": "CheckEnvVars#call when all env vars are defined behaves like success load skips the test",
|
||||
"status": "pending",
|
||||
"file_path": "./spec/config/check_env_vars_spec.rb",
|
||||
"line_number": 27,
|
||||
"run_time": 2.3007e-05,
|
||||
"pending_message": "Temporarily skipped with xit"
|
||||
}
|
||||
],
|
||||
"summary": {
|
||||
"duration": 0.19118387,
|
||||
"example_count": 3,
|
||||
"failure_count": 1,
|
||||
"pending_count": 1,
|
||||
"errors_outside_of_examples_count": 0
|
||||
},
|
||||
"summary_line": "3 examples, 1 failures, 1 pending"
|
||||
}
|
||||
12
__tests__/fixtures/swift-xunit.xml
Normal file
12
__tests__/fixtures/swift-xunit.xml
Normal file
@@ -0,0 +1,12 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<testsuites>
|
||||
<testsuite name="TestResults" errors="0" tests="3" failures="1" time="0.22047725">
|
||||
<testcase classname="AcmeLibTests.AcmeLibTests" name="test_always_pass" time="0.036386333">
|
||||
</testcase>
|
||||
<testcase classname="AcmeLibTests.AcmeLibTests" name="test_always_skip" time="0.092039167">
|
||||
</testcase>
|
||||
<testcase classname="AcmeLibTests.AcmeLibTests" name="test_always_fail" time="0.09205175">
|
||||
<failure message="failed"></failure>
|
||||
</testcase>
|
||||
</testsuite>
|
||||
</testsuites>
|
||||
29
__tests__/golang-json.test.ts
Normal file
29
__tests__/golang-json.test.ts
Normal file
@@ -0,0 +1,29 @@
|
||||
import * as fs from 'fs'
|
||||
import * as path from 'path'
|
||||
|
||||
import {GolangJsonParser} from '../src/parsers/golang-json/golang-json-parser'
|
||||
import {ParseOptions} from '../src/test-parser'
|
||||
import {getReport} from '../src/report/get-report'
|
||||
import {normalizeFilePath} from '../src/utils/path-utils'
|
||||
|
||||
describe('golang-json tests', () => {
|
||||
it('report from ./reports/dotnet test results matches snapshot', async () => {
|
||||
const fixturePath = path.join(__dirname, 'fixtures', 'golang-json.json')
|
||||
const outputPath = path.join(__dirname, '__outputs__', 'golang-json.md')
|
||||
const filePath = normalizeFilePath(path.relative(__dirname, fixturePath))
|
||||
const fileContent = fs.readFileSync(fixturePath, {encoding: 'utf8'})
|
||||
|
||||
const opts: ParseOptions = {
|
||||
parseErrors: true,
|
||||
trackedFiles: ['calculator.go', 'calculator_test.go']
|
||||
}
|
||||
|
||||
const parser = new GolangJsonParser(opts)
|
||||
const result = await parser.parse(filePath, fileContent)
|
||||
expect(result).toMatchSnapshot()
|
||||
|
||||
const report = getReport([result])
|
||||
fs.mkdirSync(path.dirname(outputPath), {recursive: true})
|
||||
fs.writeFileSync(outputPath, report)
|
||||
})
|
||||
})
|
||||
@@ -3,7 +3,7 @@ import * as path from 'path'
|
||||
|
||||
import {JavaJunitParser} from '../src/parsers/java-junit/java-junit-parser'
|
||||
import {ParseOptions} from '../src/test-parser'
|
||||
import {getReport} from '../src/report/get-report'
|
||||
import {DEFAULT_OPTIONS, getReport} from '../src/report/get-report'
|
||||
import {normalizeFilePath} from '../src/utils/path-utils'
|
||||
|
||||
describe('java-junit tests', () => {
|
||||
@@ -72,4 +72,124 @@ describe('java-junit tests', () => {
|
||||
fs.mkdirSync(path.dirname(outputPath), {recursive: true})
|
||||
fs.writeFileSync(outputPath, report)
|
||||
})
|
||||
|
||||
it('report from testmo/junitxml basic example matches snapshot', async () => {
|
||||
const fixturePath = path.join(__dirname, 'fixtures', 'external', 'java', 'junit4-basic.xml')
|
||||
const outputPath = path.join(__dirname, '__outputs__', 'junit-basic.md')
|
||||
const filePath = normalizeFilePath(path.relative(__dirname, fixturePath))
|
||||
const fileContent = fs.readFileSync(fixturePath, {encoding: 'utf8'})
|
||||
|
||||
const opts: ParseOptions = {
|
||||
parseErrors: true,
|
||||
trackedFiles: []
|
||||
}
|
||||
|
||||
const parser = new JavaJunitParser(opts)
|
||||
const result = await parser.parse(filePath, fileContent)
|
||||
expect(result).toMatchSnapshot()
|
||||
|
||||
const report = getReport([result])
|
||||
fs.mkdirSync(path.dirname(outputPath), {recursive: true})
|
||||
fs.writeFileSync(outputPath, report)
|
||||
})
|
||||
|
||||
it('report from testmo/junitxml complete example matches snapshot', async () => {
|
||||
const fixturePath = path.join(__dirname, 'fixtures', 'external', 'java', 'junit4-complete.xml')
|
||||
const outputPath = path.join(__dirname, '__outputs__', 'junit-complete.md')
|
||||
const filePath = normalizeFilePath(path.relative(__dirname, fixturePath))
|
||||
const fileContent = fs.readFileSync(fixturePath, {encoding: 'utf8'})
|
||||
|
||||
const opts: ParseOptions = {
|
||||
parseErrors: true,
|
||||
trackedFiles: []
|
||||
}
|
||||
|
||||
const parser = new JavaJunitParser(opts)
|
||||
const result = await parser.parse(filePath, fileContent)
|
||||
expect(result).toMatchSnapshot()
|
||||
|
||||
const report = getReport([result])
|
||||
fs.mkdirSync(path.dirname(outputPath), {recursive: true})
|
||||
fs.writeFileSync(outputPath, report)
|
||||
})
|
||||
|
||||
it('parses empty failures in test results', async () => {
|
||||
const fixturePath = path.join(__dirname, 'fixtures', 'external', 'java', 'empty_failures.xml')
|
||||
const filePath = normalizeFilePath(path.relative(__dirname, fixturePath))
|
||||
const fileContent = fs.readFileSync(fixturePath, {encoding: 'utf8'})
|
||||
|
||||
const trackedFiles: string[] = []
|
||||
const opts: ParseOptions = {
|
||||
parseErrors: true,
|
||||
trackedFiles
|
||||
}
|
||||
|
||||
const parser = new JavaJunitParser(opts)
|
||||
const result = await parser.parse(filePath, fileContent)
|
||||
|
||||
expect(result.result === 'failed')
|
||||
expect(result.failed === 1)
|
||||
})
|
||||
|
||||
it('report does not include a title by default', async () => {
|
||||
const fixturePath = path.join(__dirname, 'fixtures', 'junit-with-message.xml')
|
||||
const filePath = normalizeFilePath(path.relative(__dirname, fixturePath))
|
||||
const fileContent = fs.readFileSync(fixturePath, {encoding: 'utf8'})
|
||||
|
||||
const opts: ParseOptions = {
|
||||
parseErrors: true,
|
||||
trackedFiles: []
|
||||
}
|
||||
|
||||
const parser = new JavaJunitParser(opts)
|
||||
const result = await parser.parse(filePath, fileContent)
|
||||
const report = getReport([result])
|
||||
// Report should have the badge as the first line
|
||||
expect(report).toMatch(/^!\[Tests failed]/)
|
||||
})
|
||||
|
||||
it.each([
|
||||
['empty string', ''],
|
||||
['space', ' '],
|
||||
['tab', '\t'],
|
||||
['newline', '\n']
|
||||
])('report does not include a title when configured value is %s', async (_, reportTitle) => {
|
||||
const fixturePath = path.join(__dirname, 'fixtures', 'junit-with-message.xml')
|
||||
const filePath = normalizeFilePath(path.relative(__dirname, fixturePath))
|
||||
const fileContent = fs.readFileSync(fixturePath, {encoding: 'utf8'})
|
||||
|
||||
const opts: ParseOptions = {
|
||||
parseErrors: true,
|
||||
trackedFiles: []
|
||||
}
|
||||
|
||||
const parser = new JavaJunitParser(opts)
|
||||
const result = await parser.parse(filePath, fileContent)
|
||||
const report = getReport([result], {
|
||||
...DEFAULT_OPTIONS,
|
||||
reportTitle
|
||||
})
|
||||
// Report should have the badge as the first line
|
||||
expect(report).toMatch(/^!\[Tests failed]/)
|
||||
})
|
||||
|
||||
it('report includes a custom report title', async () => {
|
||||
const fixturePath = path.join(__dirname, 'fixtures', 'empty', 'java-junit.xml')
|
||||
const filePath = normalizeFilePath(path.relative(__dirname, fixturePath))
|
||||
const fileContent = fs.readFileSync(fixturePath, {encoding: 'utf8'})
|
||||
|
||||
const opts: ParseOptions = {
|
||||
parseErrors: true,
|
||||
trackedFiles: []
|
||||
}
|
||||
|
||||
const parser = new JavaJunitParser(opts)
|
||||
const result = await parser.parse(filePath, fileContent)
|
||||
const report = getReport([result], {
|
||||
...DEFAULT_OPTIONS,
|
||||
reportTitle: 'My Custom Title'
|
||||
})
|
||||
// Report should have the title as the first line
|
||||
expect(report).toMatch(/^# My Custom Title\n/)
|
||||
})
|
||||
})
|
||||
|
||||
75
__tests__/java-stack-trace-element-parser.test.ts
Normal file
75
__tests__/java-stack-trace-element-parser.test.ts
Normal file
@@ -0,0 +1,75 @@
|
||||
import {parseStackTraceElement} from '../src/parsers/java-junit/java-stack-trace-element-parser'
|
||||
|
||||
describe('parseStackTraceLine tests', () => {
|
||||
it('empty line is not parsed', async () => {
|
||||
const line = ''
|
||||
expect(parseStackTraceElement(line)).toBe(undefined)
|
||||
})
|
||||
|
||||
describe('java class', () => {
|
||||
it('simple', async () => {
|
||||
const line =
|
||||
'at org.apache.pulsar.AddMissingPatchVersionTest.testVersionStrings(AddMissingPatchVersionTest.java:29)'
|
||||
expect(parseStackTraceElement(line)).toEqual({
|
||||
tracePath: 'org.apache.pulsar.AddMissingPatchVersionTest.testVersionStrings',
|
||||
fileName: 'AddMissingPatchVersionTest.java',
|
||||
lineStr: '29'
|
||||
})
|
||||
})
|
||||
|
||||
it('inner class', async () => {
|
||||
const line = 'at com.foo.Main$Inner.run(Main.java:29)'
|
||||
expect(parseStackTraceElement(line)).toEqual({
|
||||
tracePath: 'com.foo.Main$Inner.run',
|
||||
fileName: 'Main.java',
|
||||
lineStr: '29'
|
||||
})
|
||||
})
|
||||
|
||||
it('starts with whitespaces', async () => {
|
||||
const line =
|
||||
' \tat org.apache.pulsar.AddMissingPatchVersionTest.testVersionStrings(AddMissingPatchVersionTest.java:29)'
|
||||
expect(parseStackTraceElement(line)).toEqual({
|
||||
tracePath: 'org.apache.pulsar.AddMissingPatchVersionTest.testVersionStrings',
|
||||
fileName: 'AddMissingPatchVersionTest.java',
|
||||
lineStr: '29'
|
||||
})
|
||||
})
|
||||
|
||||
describe('since Java 9', () => {
|
||||
it('with classloader and module', async () => {
|
||||
// Based on Java 9 StackTraceElement.toString() Doc: https://docs.oracle.com/javase/9/docs/api/java/lang/StackTraceElement.html#toString--
|
||||
const line = 'at com.foo.loader/foo@9.0/com.foo.Main.run(Main.java:101)'
|
||||
expect(parseStackTraceElement(line)).toEqual({
|
||||
classLoader: 'com.foo.loader',
|
||||
moduleNameAndVersion: 'foo@9.0',
|
||||
tracePath: 'com.foo.Main.run',
|
||||
fileName: 'Main.java',
|
||||
lineStr: '101'
|
||||
})
|
||||
})
|
||||
|
||||
it('with classloader', async () => {
|
||||
const line = 'at com.foo.loader//com.foo.Main.run(Main.java:101)'
|
||||
expect(parseStackTraceElement(line)).toEqual({
|
||||
classLoader: 'com.foo.loader',
|
||||
moduleNameAndVersion: undefined,
|
||||
tracePath: 'com.foo.Main.run',
|
||||
fileName: 'Main.java',
|
||||
lineStr: '101'
|
||||
})
|
||||
})
|
||||
})
|
||||
})
|
||||
|
||||
describe('Kotlin class', () => {
|
||||
it('method name containing whitespaces', async () => {
|
||||
const line = 'at com.foo.Main.method with whitespaces(Main.kt:18)'
|
||||
expect(parseStackTraceElement(line)).toEqual({
|
||||
tracePath: 'com.foo.Main.method with whitespaces',
|
||||
fileName: 'Main.kt',
|
||||
lineStr: '18'
|
||||
})
|
||||
})
|
||||
})
|
||||
})
|
||||
@@ -3,11 +3,11 @@ import * as path from 'path'
|
||||
|
||||
import {JestJunitParser} from '../src/parsers/jest-junit/jest-junit-parser'
|
||||
import {ParseOptions} from '../src/test-parser'
|
||||
import {getReport} from '../src/report/get-report'
|
||||
import {DEFAULT_OPTIONS, getReport} from '../src/report/get-report'
|
||||
import {normalizeFilePath} from '../src/utils/path-utils'
|
||||
|
||||
describe('jest-junit tests', () => {
|
||||
it('produces empty test run result when there are no test cases', async () => {
|
||||
it('produces empty test run result when there are no test cases in the testsuites element', async () => {
|
||||
const fixturePath = path.join(__dirname, 'fixtures', 'empty', 'jest-junit.xml')
|
||||
const filePath = normalizeFilePath(path.relative(__dirname, fixturePath))
|
||||
const fileContent = fs.readFileSync(fixturePath, {encoding: 'utf8'})
|
||||
@@ -23,6 +23,22 @@ describe('jest-junit tests', () => {
|
||||
expect(result.result).toBe('success')
|
||||
})
|
||||
|
||||
it('produces empty test run result when there are no test cases in a nested testsuite element', async () => {
|
||||
const fixturePath = path.join(__dirname, 'fixtures', 'empty', 'jest-junit-empty-testsuite.xml')
|
||||
const filePath = normalizeFilePath(path.relative(__dirname, fixturePath))
|
||||
const fileContent = fs.readFileSync(fixturePath, {encoding: 'utf8'})
|
||||
|
||||
const opts: ParseOptions = {
|
||||
parseErrors: true,
|
||||
trackedFiles: []
|
||||
}
|
||||
|
||||
const parser = new JestJunitParser(opts)
|
||||
const result = await parser.parse(filePath, fileContent)
|
||||
expect(result.tests).toBe(0)
|
||||
expect(result.result).toBe('success')
|
||||
})
|
||||
|
||||
it('report from ./reports/jest test results matches snapshot', async () => {
|
||||
const fixturePath = path.join(__dirname, 'fixtures', 'jest-junit.xml')
|
||||
const outputPath = path.join(__dirname, '__outputs__', 'jest-junit.md')
|
||||
@@ -66,4 +82,268 @@ describe('jest-junit tests', () => {
|
||||
fs.mkdirSync(path.dirname(outputPath), {recursive: true})
|
||||
fs.writeFileSync(outputPath, report)
|
||||
})
|
||||
|
||||
it('report from #235 testing react components named <ComponentName />', async () => {
|
||||
const fixturePath = path.join(__dirname, 'fixtures', 'external', 'jest', 'jest-react-component-test-results.xml')
|
||||
const trackedFilesPath = path.join(__dirname, 'fixtures', 'external', 'jest', 'files.txt')
|
||||
const outputPath = path.join(__dirname, '__outputs__', 'jest-react-component-test-results.md')
|
||||
const filePath = normalizeFilePath(path.relative(__dirname, fixturePath))
|
||||
const fileContent = fs.readFileSync(fixturePath, {encoding: 'utf8'})
|
||||
|
||||
const trackedFiles = fs.readFileSync(trackedFilesPath, {encoding: 'utf8'}).split(/\n\r?/g)
|
||||
const opts: ParseOptions = {
|
||||
parseErrors: true,
|
||||
trackedFiles
|
||||
//workDir: '/home/dorny/dorny/jest/'
|
||||
}
|
||||
|
||||
const parser = new JestJunitParser(opts)
|
||||
const result = await parser.parse(filePath, fileContent)
|
||||
expect(result).toMatchSnapshot()
|
||||
|
||||
const report = getReport([result])
|
||||
fs.mkdirSync(path.dirname(outputPath), {recursive: true})
|
||||
fs.writeFileSync(outputPath, report)
|
||||
})
|
||||
|
||||
it('parsing ESLint report without timing information works - PR #134', async () => {
|
||||
const fixturePath = path.join(__dirname, 'fixtures', 'jest-junit-eslint.xml')
|
||||
const outputPath = path.join(__dirname, '__outputs__', 'jest-junit-eslint.md')
|
||||
const filePath = normalizeFilePath(path.relative(__dirname, fixturePath))
|
||||
const fileContent = fs.readFileSync(fixturePath, {encoding: 'utf8'})
|
||||
|
||||
const opts: ParseOptions = {
|
||||
parseErrors: true,
|
||||
trackedFiles: ['test.js']
|
||||
}
|
||||
|
||||
const parser = new JestJunitParser(opts)
|
||||
const result = await parser.parse(filePath, fileContent)
|
||||
expect(result).toMatchSnapshot()
|
||||
|
||||
const report = getReport([result])
|
||||
fs.mkdirSync(path.dirname(outputPath), {recursive: true})
|
||||
fs.writeFileSync(outputPath, report)
|
||||
})
|
||||
|
||||
it('parsing junit report with message succeeds', async () => {
|
||||
const fixturePath = path.join(__dirname, 'fixtures', 'junit-with-message.xml')
|
||||
const outputPath = path.join(__dirname, '__outputs__', 'junit-with-message.md')
|
||||
const filePath = normalizeFilePath(path.relative(__dirname, fixturePath))
|
||||
const fileContent = fs.readFileSync(fixturePath, {encoding: 'utf8'})
|
||||
|
||||
const opts: ParseOptions = {
|
||||
parseErrors: true,
|
||||
trackedFiles: ['test.js']
|
||||
}
|
||||
|
||||
const parser = new JestJunitParser(opts)
|
||||
const result = await parser.parse(filePath, fileContent)
|
||||
expect(result).toMatchSnapshot()
|
||||
|
||||
const report = getReport([result])
|
||||
fs.mkdirSync(path.dirname(outputPath), {recursive: true})
|
||||
fs.writeFileSync(outputPath, report)
|
||||
})
|
||||
|
||||
it('report does not include a title by default', async () => {
|
||||
const fixturePath = path.join(__dirname, 'fixtures', 'jest-junit.xml')
|
||||
const filePath = normalizeFilePath(path.relative(__dirname, fixturePath))
|
||||
const fileContent = fs.readFileSync(fixturePath, {encoding: 'utf8'})
|
||||
|
||||
const opts: ParseOptions = {
|
||||
parseErrors: true,
|
||||
trackedFiles: []
|
||||
}
|
||||
|
||||
const parser = new JestJunitParser(opts)
|
||||
const result = await parser.parse(filePath, fileContent)
|
||||
const report = getReport([result])
|
||||
// Report should have the badge as the first line
|
||||
expect(report).toMatch(/^!\[Tests failed]/)
|
||||
})
|
||||
|
||||
it.each([
|
||||
['empty string', ''],
|
||||
['space', ' '],
|
||||
['tab', '\t'],
|
||||
['newline', '\n']
|
||||
])('report does not include a title when configured value is %s', async (_, reportTitle) => {
|
||||
const fixturePath = path.join(__dirname, 'fixtures', 'jest-junit.xml')
|
||||
const filePath = normalizeFilePath(path.relative(__dirname, fixturePath))
|
||||
const fileContent = fs.readFileSync(fixturePath, {encoding: 'utf8'})
|
||||
|
||||
const opts: ParseOptions = {
|
||||
parseErrors: true,
|
||||
trackedFiles: []
|
||||
}
|
||||
|
||||
const parser = new JestJunitParser(opts)
|
||||
const result = await parser.parse(filePath, fileContent)
|
||||
const report = getReport([result], {
|
||||
...DEFAULT_OPTIONS,
|
||||
reportTitle
|
||||
})
|
||||
// Report should have the badge as the first line
|
||||
expect(report).toMatch(/^!\[Tests failed]/)
|
||||
})
|
||||
|
||||
it('report includes a custom report title', async () => {
|
||||
const fixturePath = path.join(__dirname, 'fixtures', 'jest-junit.xml')
|
||||
const filePath = normalizeFilePath(path.relative(__dirname, fixturePath))
|
||||
const fileContent = fs.readFileSync(fixturePath, {encoding: 'utf8'})
|
||||
|
||||
const opts: ParseOptions = {
|
||||
parseErrors: true,
|
||||
trackedFiles: []
|
||||
}
|
||||
|
||||
const parser = new JestJunitParser(opts)
|
||||
const result = await parser.parse(filePath, fileContent)
|
||||
const report = getReport([result], {
|
||||
...DEFAULT_OPTIONS,
|
||||
reportTitle: 'My Custom Title'
|
||||
})
|
||||
// Report should have the title as the first line
|
||||
expect(report).toMatch(/^# My Custom Title\n/)
|
||||
})
|
||||
|
||||
it('report can be collapsed when configured', async () => {
|
||||
const fixturePath = path.join(__dirname, 'fixtures', 'jest-junit.xml')
|
||||
const filePath = normalizeFilePath(path.relative(__dirname, fixturePath))
|
||||
const fileContent = fs.readFileSync(fixturePath, {encoding: 'utf8'})
|
||||
|
||||
const opts: ParseOptions = {
|
||||
parseErrors: true,
|
||||
trackedFiles: []
|
||||
}
|
||||
|
||||
const parser = new JestJunitParser(opts)
|
||||
const result = await parser.parse(filePath, fileContent)
|
||||
const report = getReport([result], {
|
||||
...DEFAULT_OPTIONS,
|
||||
collapsed: 'always'
|
||||
})
|
||||
// Report should include collapsible details
|
||||
expect(report).toContain('<details><summary>Expand for details</summary>')
|
||||
expect(report).toContain('</details>')
|
||||
})
|
||||
|
||||
it('report is not collapsed when configured to never', async () => {
|
||||
const fixturePath = path.join(__dirname, 'fixtures', 'jest-junit.xml')
|
||||
const filePath = normalizeFilePath(path.relative(__dirname, fixturePath))
|
||||
const fileContent = fs.readFileSync(fixturePath, {encoding: 'utf8'})
|
||||
|
||||
const opts: ParseOptions = {
|
||||
parseErrors: true,
|
||||
trackedFiles: []
|
||||
}
|
||||
|
||||
const parser = new JestJunitParser(opts)
|
||||
const result = await parser.parse(filePath, fileContent)
|
||||
const report = getReport([result], {
|
||||
...DEFAULT_OPTIONS,
|
||||
collapsed: 'never'
|
||||
})
|
||||
// Report should not include collapsible details
|
||||
expect(report).not.toContain('<details><summary>Expand for details</summary>')
|
||||
expect(report).not.toContain('</details>')
|
||||
})
|
||||
|
||||
it('report auto-collapses when all tests pass', async () => {
|
||||
// Test with a fixture that has all passing tests (no failures)
|
||||
const fixturePath = path.join(__dirname, 'fixtures', 'jest-junit-eslint.xml')
|
||||
const filePath = normalizeFilePath(path.relative(__dirname, fixturePath))
|
||||
const fileContent = fs.readFileSync(fixturePath, {encoding: 'utf8'})
|
||||
|
||||
const opts: ParseOptions = {
|
||||
parseErrors: true,
|
||||
trackedFiles: []
|
||||
}
|
||||
|
||||
const parser = new JestJunitParser(opts)
|
||||
const result = await parser.parse(filePath, fileContent)
|
||||
|
||||
// Verify this fixture has no failures
|
||||
expect(result.failed).toBe(0)
|
||||
|
||||
const report = getReport([result], {
|
||||
...DEFAULT_OPTIONS,
|
||||
collapsed: 'auto'
|
||||
})
|
||||
|
||||
// Should collapse when all tests pass
|
||||
expect(report).toContain('<details><summary>Expand for details</summary>')
|
||||
expect(report).toContain('</details>')
|
||||
})
|
||||
|
||||
it('report does not auto-collapse when tests fail', async () => {
|
||||
// Test with a fixture that has failing tests
|
||||
const fixturePath = path.join(__dirname, 'fixtures', 'jest-junit.xml')
|
||||
const filePath = normalizeFilePath(path.relative(__dirname, fixturePath))
|
||||
const fileContent = fs.readFileSync(fixturePath, {encoding: 'utf8'})
|
||||
|
||||
const opts: ParseOptions = {
|
||||
parseErrors: true,
|
||||
trackedFiles: []
|
||||
}
|
||||
|
||||
const parser = new JestJunitParser(opts)
|
||||
const result = await parser.parse(filePath, fileContent)
|
||||
|
||||
// Verify this fixture has failures
|
||||
expect(result.failed).toBeGreaterThan(0)
|
||||
|
||||
const report = getReport([result], {
|
||||
...DEFAULT_OPTIONS,
|
||||
collapsed: 'auto'
|
||||
})
|
||||
|
||||
// Should not collapse when there are failures
|
||||
expect(report).not.toContain('<details><summary>Expand for details</summary>')
|
||||
expect(report).not.toContain('</details>')
|
||||
})
|
||||
|
||||
it('report includes the short summary', async () => {
|
||||
const fixturePath = path.join(__dirname, 'fixtures', 'jest-junit.xml')
|
||||
const filePath = normalizeFilePath(path.relative(__dirname, fixturePath))
|
||||
const fileContent = fs.readFileSync(fixturePath, {encoding: 'utf8'})
|
||||
|
||||
const opts: ParseOptions = {
|
||||
parseErrors: true,
|
||||
trackedFiles: []
|
||||
}
|
||||
|
||||
const parser = new JestJunitParser(opts)
|
||||
const result = await parser.parse(filePath, fileContent)
|
||||
const shortSummary = '1 passed, 4 failed and 1 skipped'
|
||||
const report = getReport([result], DEFAULT_OPTIONS, shortSummary)
|
||||
// Report should have the title as the first line
|
||||
expect(report).toMatch(/^## 1 passed, 4 failed and 1 skipped\n/)
|
||||
})
|
||||
|
||||
it('report includes a custom report title and short summary', async () => {
|
||||
const fixturePath = path.join(__dirname, 'fixtures', 'jest-junit.xml')
|
||||
const filePath = normalizeFilePath(path.relative(__dirname, fixturePath))
|
||||
const fileContent = fs.readFileSync(fixturePath, {encoding: 'utf8'})
|
||||
|
||||
const opts: ParseOptions = {
|
||||
parseErrors: true,
|
||||
trackedFiles: []
|
||||
}
|
||||
|
||||
const parser = new JestJunitParser(opts)
|
||||
const result = await parser.parse(filePath, fileContent)
|
||||
const shortSummary = '1 passed, 4 failed and 1 skipped'
|
||||
const report = getReport(
|
||||
[result],
|
||||
{
|
||||
...DEFAULT_OPTIONS,
|
||||
reportTitle: 'My Custom Title'
|
||||
},
|
||||
shortSummary
|
||||
)
|
||||
// Report should have the title as the first line
|
||||
expect(report).toMatch(/^# My Custom Title\n## 1 passed, 4 failed and 1 skipped\n/)
|
||||
})
|
||||
})
|
||||
|
||||
129
__tests__/mocha-json.test.ts
Normal file
129
__tests__/mocha-json.test.ts
Normal file
@@ -0,0 +1,129 @@
|
||||
import * as fs from 'fs'
|
||||
import * as path from 'path'
|
||||
|
||||
import {MochaJsonParser} from '../src/parsers/mocha-json/mocha-json-parser'
|
||||
import {ParseOptions} from '../src/test-parser'
|
||||
import {DEFAULT_OPTIONS, getReport} from '../src/report/get-report'
|
||||
import {normalizeFilePath} from '../src/utils/path-utils'
|
||||
|
||||
describe('mocha-json tests', () => {
|
||||
it('produces empty test run result when there are no test cases', async () => {
|
||||
const fixturePath = path.join(__dirname, 'fixtures', 'empty', 'mocha-json.json')
|
||||
const filePath = normalizeFilePath(path.relative(__dirname, fixturePath))
|
||||
const fileContent = fs.readFileSync(fixturePath, {encoding: 'utf8'})
|
||||
|
||||
const opts: ParseOptions = {
|
||||
parseErrors: true,
|
||||
trackedFiles: []
|
||||
}
|
||||
|
||||
const parser = new MochaJsonParser(opts)
|
||||
const result = await parser.parse(filePath, fileContent)
|
||||
expect(result.tests).toBe(0)
|
||||
expect(result.result).toBe('success')
|
||||
})
|
||||
|
||||
it('report from ./reports/mocha-json test results matches snapshot', async () => {
|
||||
const fixturePath = path.join(__dirname, 'fixtures', 'mocha-json.json')
|
||||
const outputPath = path.join(__dirname, '__outputs__', 'mocha-json.md')
|
||||
const filePath = normalizeFilePath(path.relative(__dirname, fixturePath))
|
||||
const fileContent = fs.readFileSync(fixturePath, {encoding: 'utf8'})
|
||||
|
||||
const opts: ParseOptions = {
|
||||
parseErrors: true,
|
||||
trackedFiles: ['test/main.test.js', 'test/second.test.js', 'lib/main.js']
|
||||
}
|
||||
|
||||
const parser = new MochaJsonParser(opts)
|
||||
const result = await parser.parse(filePath, fileContent)
|
||||
expect(result).toMatchSnapshot()
|
||||
|
||||
const report = getReport([result])
|
||||
fs.mkdirSync(path.dirname(outputPath), {recursive: true})
|
||||
fs.writeFileSync(outputPath, report)
|
||||
})
|
||||
|
||||
it('report from mochajs/mocha test results matches snapshot', async () => {
|
||||
const fixturePath = path.join(__dirname, 'fixtures', 'external', 'mocha', 'mocha-test-results.json')
|
||||
const trackedFilesPath = path.join(__dirname, 'fixtures', 'external', 'mocha', 'files.txt')
|
||||
const outputPath = path.join(__dirname, '__outputs__', 'mocha-test-results.md')
|
||||
const filePath = normalizeFilePath(path.relative(__dirname, fixturePath))
|
||||
const fileContent = fs.readFileSync(fixturePath, {encoding: 'utf8'})
|
||||
|
||||
const trackedFiles = fs.readFileSync(trackedFilesPath, {encoding: 'utf8'}).split(/\n\r?/g)
|
||||
const opts: ParseOptions = {
|
||||
parseErrors: true,
|
||||
trackedFiles
|
||||
}
|
||||
|
||||
const parser = new MochaJsonParser(opts)
|
||||
const result = await parser.parse(filePath, fileContent)
|
||||
expect(result).toMatchSnapshot()
|
||||
|
||||
const report = getReport([result])
|
||||
fs.mkdirSync(path.dirname(outputPath), {recursive: true})
|
||||
fs.writeFileSync(outputPath, report)
|
||||
})
|
||||
|
||||
it('report does not include a title by default', async () => {
|
||||
const fixturePath = path.join(__dirname, 'fixtures', 'mocha-json.json')
|
||||
const filePath = normalizeFilePath(path.relative(__dirname, fixturePath))
|
||||
const fileContent = fs.readFileSync(fixturePath, {encoding: 'utf8'})
|
||||
|
||||
const opts: ParseOptions = {
|
||||
parseErrors: true,
|
||||
trackedFiles: []
|
||||
}
|
||||
|
||||
const parser = new MochaJsonParser(opts)
|
||||
const result = await parser.parse(filePath, fileContent)
|
||||
const report = getReport([result])
|
||||
// Report should have the badge as the first line
|
||||
expect(report).toMatch(/^!\[Tests failed]/)
|
||||
})
|
||||
|
||||
it.each([
|
||||
['empty string', ''],
|
||||
['space', ' '],
|
||||
['tab', '\t'],
|
||||
['newline', '\n']
|
||||
])('report does not include a title when configured value is %s', async (_, reportTitle) => {
|
||||
const fixturePath = path.join(__dirname, 'fixtures', 'mocha-json.json')
|
||||
const filePath = normalizeFilePath(path.relative(__dirname, fixturePath))
|
||||
const fileContent = fs.readFileSync(fixturePath, {encoding: 'utf8'})
|
||||
|
||||
const opts: ParseOptions = {
|
||||
parseErrors: true,
|
||||
trackedFiles: []
|
||||
}
|
||||
|
||||
const parser = new MochaJsonParser(opts)
|
||||
const result = await parser.parse(filePath, fileContent)
|
||||
const report = getReport([result], {
|
||||
...DEFAULT_OPTIONS,
|
||||
reportTitle
|
||||
})
|
||||
// Report should have the badge as the first line
|
||||
expect(report).toMatch(/^!\[Tests failed]/)
|
||||
})
|
||||
|
||||
it('report includes a custom report title', async () => {
|
||||
const fixturePath = path.join(__dirname, 'fixtures', 'mocha-json.json')
|
||||
const filePath = normalizeFilePath(path.relative(__dirname, fixturePath))
|
||||
const fileContent = fs.readFileSync(fixturePath, {encoding: 'utf8'})
|
||||
|
||||
const opts: ParseOptions = {
|
||||
parseErrors: true,
|
||||
trackedFiles: []
|
||||
}
|
||||
|
||||
const parser = new MochaJsonParser(opts)
|
||||
const result = await parser.parse(filePath, fileContent)
|
||||
const report = getReport([result], {
|
||||
...DEFAULT_OPTIONS,
|
||||
reportTitle: 'My Custom Title'
|
||||
})
|
||||
// Report should have the title as the first line
|
||||
expect(report).toMatch(/^# My Custom Title\n/)
|
||||
})
|
||||
})
|
||||
347
__tests__/phpunit-junit.test.ts
Normal file
347
__tests__/phpunit-junit.test.ts
Normal file
@@ -0,0 +1,347 @@
|
||||
import * as fs from 'fs'
|
||||
import * as path from 'path'
|
||||
|
||||
import {PhpunitJunitParser} from '../src/parsers/phpunit-junit/phpunit-junit-parser'
|
||||
import {ParseOptions} from '../src/test-parser'
|
||||
import {getReport} from '../src/report/get-report'
|
||||
import {normalizeFilePath} from '../src/utils/path-utils'
|
||||
|
||||
describe('phpunit-junit tests', () => {
|
||||
it('produces empty test run result when there are no test cases', async () => {
|
||||
const fixturePath = path.join(__dirname, 'fixtures', 'empty', 'phpunit-empty.xml')
|
||||
const filePath = normalizeFilePath(path.relative(__dirname, fixturePath))
|
||||
const fileContent = fs.readFileSync(fixturePath, {encoding: 'utf8'})
|
||||
|
||||
const opts: ParseOptions = {
|
||||
parseErrors: true,
|
||||
trackedFiles: []
|
||||
}
|
||||
|
||||
const parser = new PhpunitJunitParser(opts)
|
||||
const result = await parser.parse(filePath, fileContent)
|
||||
expect(result.tests).toBe(0)
|
||||
expect(result.result).toBe('success')
|
||||
})
|
||||
|
||||
it('report from phpunit test results matches snapshot', async () => {
|
||||
const fixturePath = path.join(__dirname, 'fixtures', 'phpunit', 'phpunit.xml')
|
||||
const outputPath = path.join(__dirname, '__outputs__', 'phpunit-test-results.md')
|
||||
const filePath = normalizeFilePath(path.relative(__dirname, fixturePath))
|
||||
const fileContent = fs.readFileSync(fixturePath, {encoding: 'utf8'})
|
||||
|
||||
const opts: ParseOptions = {
|
||||
parseErrors: true,
|
||||
trackedFiles: []
|
||||
}
|
||||
|
||||
const parser = new PhpunitJunitParser(opts)
|
||||
const result = await parser.parse(filePath, fileContent)
|
||||
expect(result).toMatchSnapshot()
|
||||
|
||||
const report = getReport([result])
|
||||
fs.mkdirSync(path.dirname(outputPath), {recursive: true})
|
||||
fs.writeFileSync(outputPath, report)
|
||||
})
|
||||
|
||||
it('parses nested test suites correctly', async () => {
|
||||
const fixturePath = path.join(__dirname, 'fixtures', 'phpunit', 'phpunit.xml')
|
||||
const filePath = normalizeFilePath(path.relative(__dirname, fixturePath))
|
||||
const fileContent = fs.readFileSync(fixturePath, {encoding: 'utf8'})
|
||||
|
||||
const opts: ParseOptions = {
|
||||
parseErrors: true,
|
||||
trackedFiles: []
|
||||
}
|
||||
|
||||
const parser = new PhpunitJunitParser(opts)
|
||||
const result = await parser.parse(filePath, fileContent)
|
||||
|
||||
// Should have 4 test suites (3 nested ones plus the parent with direct testcases)
|
||||
expect(result.suites.length).toBe(4)
|
||||
|
||||
// Verify suite names
|
||||
const suiteNames = result.suites.map(s => s.name)
|
||||
expect(suiteNames).toContain('PHPUnit\\Event\\CollectingDispatcherTest')
|
||||
expect(suiteNames).toContain('PHPUnit\\Event\\DeferringDispatcherTest')
|
||||
expect(suiteNames).toContain('PHPUnit\\Event\\DirectDispatcherTest')
|
||||
expect(suiteNames).toContain('CLI Arguments')
|
||||
|
||||
// Verify total test count
|
||||
expect(result.tests).toBe(12)
|
||||
expect(result.passed).toBe(10)
|
||||
expect(result.failed).toBe(2)
|
||||
})
|
||||
|
||||
it('extracts error details from failures', async () => {
|
||||
const fixturePath = path.join(__dirname, 'fixtures', 'phpunit', 'phpunit.xml')
|
||||
const filePath = normalizeFilePath(path.relative(__dirname, fixturePath))
|
||||
const fileContent = fs.readFileSync(fixturePath, {encoding: 'utf8'})
|
||||
|
||||
const opts: ParseOptions = {
|
||||
parseErrors: true,
|
||||
trackedFiles: []
|
||||
}
|
||||
|
||||
const parser = new PhpunitJunitParser(opts)
|
||||
const result = await parser.parse(filePath, fileContent)
|
||||
|
||||
// Find the CLI Arguments suite which has failures
|
||||
const cliSuite = result.suites.find(s => s.name === 'CLI Arguments')
|
||||
expect(cliSuite).toBeDefined()
|
||||
|
||||
// Get the failed tests
|
||||
const failedTests = cliSuite!.groups.flatMap(g => g.tests).filter(t => t.result === 'failed')
|
||||
expect(failedTests.length).toBe(2)
|
||||
|
||||
// Verify error details are captured
|
||||
for (const test of failedTests) {
|
||||
expect(test.error).toBeDefined()
|
||||
expect(test.error!.details).toContain('Failed asserting that string matches format description')
|
||||
}
|
||||
})
|
||||
|
||||
it('maps absolute paths to tracked files for annotations', async () => {
|
||||
const fixturePath = path.join(__dirname, 'fixtures', 'phpunit', 'phpunit-paths.xml')
|
||||
const filePath = normalizeFilePath(path.relative(__dirname, fixturePath))
|
||||
const fileContent = fs.readFileSync(fixturePath, {encoding: 'utf8'})
|
||||
|
||||
const opts: ParseOptions = {
|
||||
parseErrors: true,
|
||||
trackedFiles: [
|
||||
'src/Fake.php',
|
||||
'src/Other.php',
|
||||
'src/Paren.php',
|
||||
'src/Win.php',
|
||||
'src/WinParen.php',
|
||||
'tests/Sample.phpt'
|
||||
]
|
||||
}
|
||||
|
||||
const parser = new PhpunitJunitParser(opts)
|
||||
const result = await parser.parse(filePath, fileContent)
|
||||
|
||||
const suite = result.suites.find(s => s.name === 'SampleSuite')
|
||||
expect(suite).toBeDefined()
|
||||
|
||||
const tests = suite!.groups.flatMap(g => g.tests)
|
||||
const fileFailure = tests.find(t => t.name === 'testFailure')
|
||||
expect(fileFailure).toBeDefined()
|
||||
expect(fileFailure!.error).toBeDefined()
|
||||
expect(fileFailure!.error!.path).toBe('src/Fake.php')
|
||||
expect(fileFailure!.error!.line).toBe(42)
|
||||
|
||||
const stringFailure = tests.find(t => t.name === 'testStringFailure')
|
||||
expect(stringFailure).toBeDefined()
|
||||
expect(stringFailure!.error).toBeDefined()
|
||||
expect(stringFailure!.error!.path).toBe('src/Other.php')
|
||||
expect(stringFailure!.error!.line).toBe(10)
|
||||
|
||||
const parenFailure = tests.find(t => t.name === 'testParenFailure')
|
||||
expect(parenFailure).toBeDefined()
|
||||
expect(parenFailure!.error).toBeDefined()
|
||||
expect(parenFailure!.error!.path).toBe('src/Paren.php')
|
||||
expect(parenFailure!.error!.line).toBe(123)
|
||||
|
||||
const windowsFailure = tests.find(t => t.name === 'testWindowsFailure')
|
||||
expect(windowsFailure).toBeDefined()
|
||||
expect(windowsFailure!.error).toBeDefined()
|
||||
expect(windowsFailure!.error!.path).toBe('src/Win.php')
|
||||
expect(windowsFailure!.error!.line).toBe(77)
|
||||
|
||||
const windowsParenFailure = tests.find(t => t.name === 'testWindowsParenFailure')
|
||||
expect(windowsParenFailure).toBeDefined()
|
||||
expect(windowsParenFailure!.error).toBeDefined()
|
||||
expect(windowsParenFailure!.error!.path).toBe('src/WinParen.php')
|
||||
expect(windowsParenFailure!.error!.line).toBe(88)
|
||||
|
||||
const phptFailure = tests.find(t => t.name === 'testPhptFailure')
|
||||
expect(phptFailure).toBeDefined()
|
||||
expect(phptFailure!.error).toBeDefined()
|
||||
expect(phptFailure!.error!.path).toBe('tests/Sample.phpt')
|
||||
expect(phptFailure!.error!.line).toBe(12)
|
||||
})
|
||||
|
||||
it('parses junit-basic.xml with nested suites and failure', async () => {
|
||||
const fixturePath = path.join(__dirname, 'fixtures', 'external', 'phpunit', 'junit-basic.xml')
|
||||
const filePath = normalizeFilePath(path.relative(__dirname, fixturePath))
|
||||
const fileContent = fs.readFileSync(fixturePath, {encoding: 'utf8'})
|
||||
|
||||
const opts: ParseOptions = {
|
||||
parseErrors: true,
|
||||
trackedFiles: []
|
||||
}
|
||||
|
||||
const parser = new PhpunitJunitParser(opts)
|
||||
const result = await parser.parse(filePath, fileContent)
|
||||
|
||||
// Verify test counts
|
||||
expect(result.tests).toBe(9)
|
||||
expect(result.passed).toBe(8)
|
||||
expect(result.failed).toBe(1)
|
||||
expect(result.result).toBe('failed')
|
||||
|
||||
// Verify suites - should have Tests.Registration, Tests.Authentication.Login, and Tests.Authentication
|
||||
expect(result.suites.length).toBe(3)
|
||||
|
||||
const suiteNames = result.suites.map(s => s.name)
|
||||
expect(suiteNames).toContain('Tests.Registration')
|
||||
expect(suiteNames).toContain('Tests.Authentication.Login')
|
||||
expect(suiteNames).toContain('Tests.Authentication')
|
||||
|
||||
// Verify the Registration suite has 3 tests
|
||||
const registrationSuite = result.suites.find(s => s.name === 'Tests.Registration')
|
||||
expect(registrationSuite).toBeDefined()
|
||||
const registrationTests = registrationSuite!.groups.flatMap(g => g.tests)
|
||||
expect(registrationTests.length).toBe(3)
|
||||
|
||||
// Verify the Authentication suite has 3 direct tests (not counting nested suite)
|
||||
const authSuite = result.suites.find(s => s.name === 'Tests.Authentication')
|
||||
expect(authSuite).toBeDefined()
|
||||
const authTests = authSuite!.groups.flatMap(g => g.tests)
|
||||
expect(authTests.length).toBe(3)
|
||||
|
||||
// Verify the Login nested suite has 3 tests
|
||||
const loginSuite = result.suites.find(s => s.name === 'Tests.Authentication.Login')
|
||||
expect(loginSuite).toBeDefined()
|
||||
const loginTests = loginSuite!.groups.flatMap(g => g.tests)
|
||||
expect(loginTests.length).toBe(3)
|
||||
|
||||
// Verify failure is captured
|
||||
const failedTest = authTests.find(t => t.name === 'testCase9')
|
||||
expect(failedTest).toBeDefined()
|
||||
expect(failedTest!.result).toBe('failed')
|
||||
expect(failedTest!.error).toBeDefined()
|
||||
expect(failedTest!.error!.message).toBe('AssertionError: Assertion error message')
|
||||
})
|
||||
|
||||
it('parses phpcheckstyle-phpunit.xml with deeply nested suites', async () => {
|
||||
const fixturePath = path.join(__dirname, 'fixtures', 'external', 'phpunit', 'phpcheckstyle-phpunit.xml')
|
||||
const filePath = normalizeFilePath(path.relative(__dirname, fixturePath))
|
||||
const fileContent = fs.readFileSync(fixturePath, {encoding: 'utf8'})
|
||||
|
||||
const opts: ParseOptions = {
|
||||
parseErrors: true,
|
||||
trackedFiles: []
|
||||
}
|
||||
|
||||
const parser = new PhpunitJunitParser(opts)
|
||||
const result = await parser.parse(filePath, fileContent)
|
||||
|
||||
// Verify test counts from the XML: tests="30", failures="2"
|
||||
expect(result.tests).toBe(30)
|
||||
expect(result.passed).toBe(28)
|
||||
expect(result.failed).toBe(2)
|
||||
expect(result.result).toBe('failed')
|
||||
|
||||
// Verify the number of test suites extracted (leaf suites with testcases)
|
||||
// CommentsTest, DeprecationTest, GoodTest, IndentationTest, MetricsTest,
|
||||
// NamingTest, OptimizationTest, OtherTest, PHPTagsTest, ProhibitedTest,
|
||||
// StrictCompareTest, UnusedTest = 12 suites
|
||||
expect(result.suites.length).toBe(12)
|
||||
|
||||
const suiteNames = result.suites.map(s => s.name)
|
||||
expect(suiteNames).toContain('CommentsTest')
|
||||
expect(suiteNames).toContain('GoodTest')
|
||||
expect(suiteNames).toContain('IndentationTest')
|
||||
expect(suiteNames).toContain('OtherTest')
|
||||
})
|
||||
|
||||
it('extracts test data from phpcheckstyle-phpunit.xml', async () => {
|
||||
const fixturePath = path.join(__dirname, 'fixtures', 'external', 'phpunit', 'phpcheckstyle-phpunit.xml')
|
||||
const filePath = normalizeFilePath(path.relative(__dirname, fixturePath))
|
||||
const fileContent = fs.readFileSync(fixturePath, {encoding: 'utf8'})
|
||||
|
||||
const opts: ParseOptions = {
|
||||
parseErrors: true,
|
||||
trackedFiles: []
|
||||
}
|
||||
|
||||
const parser = new PhpunitJunitParser(opts)
|
||||
const result = await parser.parse(filePath, fileContent)
|
||||
|
||||
// Find the CommentsTest suite
|
||||
const commentsSuite = result.suites.find(s => s.name === 'CommentsTest')
|
||||
expect(commentsSuite).toBeDefined()
|
||||
|
||||
// Verify tests are extracted correctly
|
||||
const tests = commentsSuite!.groups.flatMap(g => g.tests)
|
||||
expect(tests.length).toBe(3)
|
||||
|
||||
const testGoodDoc = tests.find(t => t.name === 'testGoodDoc')
|
||||
expect(testGoodDoc).toBeDefined()
|
||||
expect(testGoodDoc!.result).toBe('success')
|
||||
})
|
||||
|
||||
it('captures failure details from phpcheckstyle-phpunit.xml', async () => {
|
||||
const fixturePath = path.join(__dirname, 'fixtures', 'external', 'phpunit', 'phpcheckstyle-phpunit.xml')
|
||||
const filePath = normalizeFilePath(path.relative(__dirname, fixturePath))
|
||||
const fileContent = fs.readFileSync(fixturePath, {encoding: 'utf8'})
|
||||
|
||||
const opts: ParseOptions = {
|
||||
parseErrors: true,
|
||||
trackedFiles: []
|
||||
}
|
||||
|
||||
const parser = new PhpunitJunitParser(opts)
|
||||
const result = await parser.parse(filePath, fileContent)
|
||||
|
||||
// Find the OtherTest suite which has failures
|
||||
const otherSuite = result.suites.find(s => s.name === 'OtherTest')
|
||||
expect(otherSuite).toBeDefined()
|
||||
|
||||
const failedTests = otherSuite!.groups.flatMap(g => g.tests).filter(t => t.result === 'failed')
|
||||
expect(failedTests.length).toBe(2)
|
||||
|
||||
// Verify failure details
|
||||
const testOther = failedTests.find(t => t.name === 'testOther')
|
||||
expect(testOther).toBeDefined()
|
||||
expect(testOther!.error).toBeDefined()
|
||||
expect(testOther!.error!.details).toContain('We expect 20 warnings')
|
||||
expect(testOther!.error!.details).toContain('Failed asserting that 19 matches expected 20')
|
||||
|
||||
const testException = failedTests.find(t => t.name === 'testException')
|
||||
expect(testException).toBeDefined()
|
||||
expect(testException!.error).toBeDefined()
|
||||
expect(testException!.error!.details).toContain('We expect 1 error')
|
||||
})
|
||||
|
||||
it('report from junit-basic.xml matches snapshot', async () => {
|
||||
const fixturePath = path.join(__dirname, 'fixtures', 'external', 'phpunit', 'junit-basic.xml')
|
||||
const outputPath = path.join(__dirname, '__outputs__', 'phpunit-junit-basic-results.md')
|
||||
const filePath = normalizeFilePath(path.relative(__dirname, fixturePath))
|
||||
const fileContent = fs.readFileSync(fixturePath, {encoding: 'utf8'})
|
||||
|
||||
const opts: ParseOptions = {
|
||||
parseErrors: true,
|
||||
trackedFiles: []
|
||||
}
|
||||
|
||||
const parser = new PhpunitJunitParser(opts)
|
||||
const result = await parser.parse(filePath, fileContent)
|
||||
expect(result).toMatchSnapshot()
|
||||
|
||||
const report = getReport([result])
|
||||
fs.mkdirSync(path.dirname(outputPath), {recursive: true})
|
||||
fs.writeFileSync(outputPath, report)
|
||||
})
|
||||
|
||||
it('report from phpcheckstyle-phpunit.xml matches snapshot', async () => {
|
||||
const fixturePath = path.join(__dirname, 'fixtures', 'external', 'phpunit', 'phpcheckstyle-phpunit.xml')
|
||||
const outputPath = path.join(__dirname, '__outputs__', 'phpunit-phpcheckstyle-results.md')
|
||||
const filePath = normalizeFilePath(path.relative(__dirname, fixturePath))
|
||||
const fileContent = fs.readFileSync(fixturePath, {encoding: 'utf8'})
|
||||
|
||||
const opts: ParseOptions = {
|
||||
parseErrors: true,
|
||||
trackedFiles: []
|
||||
}
|
||||
|
||||
const parser = new PhpunitJunitParser(opts)
|
||||
const result = await parser.parse(filePath, fileContent)
|
||||
expect(result).toMatchSnapshot()
|
||||
|
||||
const report = getReport([result])
|
||||
fs.mkdirSync(path.dirname(outputPath), {recursive: true})
|
||||
fs.writeFileSync(outputPath, report)
|
||||
})
|
||||
})
|
||||
93
__tests__/python-xunit.test.ts
Normal file
93
__tests__/python-xunit.test.ts
Normal file
@@ -0,0 +1,93 @@
|
||||
import * as fs from 'fs'
|
||||
import * as path from 'path'
|
||||
|
||||
import {PythonXunitParser} from '../src/parsers/python-xunit/python-xunit-parser'
|
||||
import {ParseOptions} from '../src/test-parser'
|
||||
import {DEFAULT_OPTIONS, getReport} from '../src/report/get-report'
|
||||
import {normalizeFilePath} from '../src/utils/path-utils'
|
||||
|
||||
const defaultOpts: ParseOptions = {
|
||||
parseErrors: true,
|
||||
trackedFiles: []
|
||||
}
|
||||
|
||||
describe('python-xunit unittest report', () => {
|
||||
const fixturePath = path.join(__dirname, 'fixtures', 'python-xunit-unittest.xml')
|
||||
const filePath = normalizeFilePath(path.relative(__dirname, fixturePath))
|
||||
const fileContent = fs.readFileSync(fixturePath, {encoding: 'utf8'})
|
||||
const outputPath = path.join(__dirname, '__outputs__', 'python-xunit-unittest.md')
|
||||
|
||||
it('report from python test results matches snapshot', async () => {
|
||||
const trackedFiles = ['tests/test_lib.py']
|
||||
const opts: ParseOptions = {
|
||||
...defaultOpts,
|
||||
trackedFiles
|
||||
}
|
||||
|
||||
const parser = new PythonXunitParser(opts)
|
||||
const result = await parser.parse(filePath, fileContent)
|
||||
expect(result).toMatchSnapshot()
|
||||
|
||||
const report = getReport([result])
|
||||
fs.mkdirSync(path.dirname(outputPath), {recursive: true})
|
||||
fs.writeFileSync(outputPath, report)
|
||||
})
|
||||
|
||||
it('report does not include a title by default', async () => {
|
||||
const parser = new PythonXunitParser(defaultOpts)
|
||||
const result = await parser.parse(filePath, fileContent)
|
||||
const report = getReport([result])
|
||||
// Report should have the badge as the first line
|
||||
expect(report).toMatch(/^!\[Tests failed]/)
|
||||
})
|
||||
|
||||
it.each([
|
||||
['empty string', ''],
|
||||
['space', ' '],
|
||||
['tab', '\t'],
|
||||
['newline', '\n']
|
||||
])('report does not include a title when configured value is %s', async (_, reportTitle) => {
|
||||
const parser = new PythonXunitParser(defaultOpts)
|
||||
const result = await parser.parse(filePath, fileContent)
|
||||
const report = getReport([result], {
|
||||
...DEFAULT_OPTIONS,
|
||||
reportTitle
|
||||
})
|
||||
// Report should have the badge as the first line
|
||||
expect(report).toMatch(/^!\[Tests failed]/)
|
||||
})
|
||||
|
||||
it('report includes a custom report title', async () => {
|
||||
const parser = new PythonXunitParser(defaultOpts)
|
||||
const result = await parser.parse(filePath, fileContent)
|
||||
const report = getReport([result], {
|
||||
...DEFAULT_OPTIONS,
|
||||
reportTitle: 'My Custom Title'
|
||||
})
|
||||
// Report should have the title as the first line
|
||||
expect(report).toMatch(/^# My Custom Title\n/)
|
||||
})
|
||||
})
|
||||
|
||||
describe('python-xunit pytest report', () => {
|
||||
const fixturePath = path.join(__dirname, 'fixtures', 'python-xunit-pytest.xml')
|
||||
const filePath = normalizeFilePath(path.relative(__dirname, fixturePath))
|
||||
const fileContent = fs.readFileSync(fixturePath, {encoding: 'utf8'})
|
||||
const outputPath = path.join(__dirname, '__outputs__', 'python-xunit-pytest.md')
|
||||
|
||||
it('report from python test results matches snapshot', async () => {
|
||||
const trackedFiles = ['tests/test_lib.py']
|
||||
const opts: ParseOptions = {
|
||||
...defaultOpts,
|
||||
trackedFiles
|
||||
}
|
||||
|
||||
const parser = new PythonXunitParser(opts)
|
||||
const result = await parser.parse(filePath, fileContent)
|
||||
expect(result).toMatchSnapshot()
|
||||
|
||||
const report = getReport([result])
|
||||
fs.mkdirSync(path.dirname(outputPath), {recursive: true})
|
||||
fs.writeFileSync(outputPath, report)
|
||||
})
|
||||
})
|
||||
120
__tests__/report/get-report.test.ts
Normal file
120
__tests__/report/get-report.test.ts
Normal file
@@ -0,0 +1,120 @@
|
||||
import {getBadge, DEFAULT_OPTIONS, ReportOptions} from '../../src/report/get-report'
|
||||
|
||||
describe('getBadge', () => {
|
||||
describe('URI encoding with special characters', () => {
|
||||
it('generates correct URI with simple badge title', () => {
|
||||
const options: ReportOptions = {
|
||||
...DEFAULT_OPTIONS,
|
||||
badgeTitle: 'tests'
|
||||
}
|
||||
const badge = getBadge(5, 0, 1, options)
|
||||
expect(badge).toBe('')
|
||||
})
|
||||
|
||||
it('handles badge title with single hyphen', () => {
|
||||
const options: ReportOptions = {
|
||||
...DEFAULT_OPTIONS,
|
||||
badgeTitle: 'unit-tests'
|
||||
}
|
||||
const badge = getBadge(3, 0, 0, options)
|
||||
// The hyphen in the badge title should be encoded as --
|
||||
expect(badge).toBe('')
|
||||
})
|
||||
|
||||
it('handles badge title with multiple hyphens', () => {
|
||||
const options: ReportOptions = {
|
||||
...DEFAULT_OPTIONS,
|
||||
badgeTitle: 'integration-api-tests'
|
||||
}
|
||||
const badge = getBadge(10, 0, 0, options)
|
||||
// All hyphens in the title should be encoded as --
|
||||
expect(badge).toBe('')
|
||||
})
|
||||
|
||||
it('handles badge title with multiple underscores', () => {
|
||||
const options: ReportOptions = {
|
||||
...DEFAULT_OPTIONS,
|
||||
badgeTitle: 'my_integration_test'
|
||||
}
|
||||
const badge = getBadge(10, 0, 0, options)
|
||||
// All underscores in the title should be encoded as __
|
||||
expect(badge).toBe('')
|
||||
})
|
||||
|
||||
it('handles badge title with version format containing hyphen', () => {
|
||||
const options: ReportOptions = {
|
||||
...DEFAULT_OPTIONS,
|
||||
badgeTitle: 'MariaDb 12.0-ubi database tests'
|
||||
}
|
||||
const badge = getBadge(1, 0, 0, options)
|
||||
// The hyphen in "12.0-ubi" should be encoded as --
|
||||
expect(badge).toBe('')
|
||||
})
|
||||
|
||||
it('handles badge title with dots and hyphens', () => {
|
||||
const options: ReportOptions = {
|
||||
...DEFAULT_OPTIONS,
|
||||
badgeTitle: 'v1.2.3-beta-test'
|
||||
}
|
||||
const badge = getBadge(4, 1, 0, options)
|
||||
expect(badge).toBe('')
|
||||
})
|
||||
|
||||
it('preserves structural hyphens between label and message', () => {
|
||||
const options: ReportOptions = {
|
||||
...DEFAULT_OPTIONS,
|
||||
badgeTitle: 'test-suite'
|
||||
}
|
||||
const badge = getBadge(2, 3, 1, options)
|
||||
// The URI should have literal hyphens separating title-message-color
|
||||
expect(badge).toBe('')
|
||||
})
|
||||
})
|
||||
|
||||
describe('generates test outcome as color name for imgshields', () => {
|
||||
it('uses success color when all tests pass', () => {
|
||||
const options: ReportOptions = {...DEFAULT_OPTIONS}
|
||||
const badge = getBadge(5, 0, 0, options)
|
||||
expect(badge).toContain('-success)')
|
||||
})
|
||||
|
||||
it('uses critical color when tests fail', () => {
|
||||
const options: ReportOptions = {...DEFAULT_OPTIONS}
|
||||
const badge = getBadge(5, 2, 0, options)
|
||||
expect(badge).toContain('-critical)')
|
||||
})
|
||||
|
||||
it('uses yellow color when no tests found', () => {
|
||||
const options: ReportOptions = {...DEFAULT_OPTIONS}
|
||||
const badge = getBadge(0, 0, 0, options)
|
||||
expect(badge).toContain('-yellow)')
|
||||
})
|
||||
})
|
||||
|
||||
describe('badge message composition', () => {
|
||||
it('includes only passed count when no failures or skips', () => {
|
||||
const options: ReportOptions = {...DEFAULT_OPTIONS}
|
||||
const badge = getBadge(5, 0, 0, options)
|
||||
expect(badge).toBe('')
|
||||
})
|
||||
|
||||
it('includes passed and failed counts', () => {
|
||||
const options: ReportOptions = {...DEFAULT_OPTIONS}
|
||||
const badge = getBadge(5, 2, 0, options)
|
||||
expect(badge).toBe('')
|
||||
})
|
||||
|
||||
it('includes passed, failed and skipped counts', () => {
|
||||
const options: ReportOptions = {...DEFAULT_OPTIONS}
|
||||
const badge = getBadge(5, 2, 1, options)
|
||||
expect(badge).toBe('')
|
||||
})
|
||||
|
||||
it('uses "none" message when no tests', () => {
|
||||
const options: ReportOptions = {...DEFAULT_OPTIONS}
|
||||
const badge = getBadge(0, 0, 0, options)
|
||||
expect(badge).toBe('')
|
||||
})
|
||||
})
|
||||
})
|
||||
|
||||
107
__tests__/rspec-json.test.ts
Normal file
107
__tests__/rspec-json.test.ts
Normal file
@@ -0,0 +1,107 @@
|
||||
import * as fs from 'fs'
|
||||
import * as path from 'path'
|
||||
|
||||
import {RspecJsonParser} from '../src/parsers/rspec-json/rspec-json-parser'
|
||||
import {ParseOptions} from '../src/test-parser'
|
||||
import {DEFAULT_OPTIONS, getReport} from '../src/report/get-report'
|
||||
import {normalizeFilePath} from '../src/utils/path-utils'
|
||||
|
||||
describe('rspec-json tests', () => {
|
||||
it('produces empty test run result when there are no test cases', async () => {
|
||||
const fixturePath = path.join(__dirname, 'fixtures', 'empty', 'rspec-json.json')
|
||||
const filePath = normalizeFilePath(path.relative(__dirname, fixturePath))
|
||||
const fileContent = fs.readFileSync(fixturePath, {encoding: 'utf8'})
|
||||
|
||||
const opts: ParseOptions = {
|
||||
parseErrors: true,
|
||||
trackedFiles: []
|
||||
}
|
||||
|
||||
const parser = new RspecJsonParser(opts)
|
||||
const result = await parser.parse(filePath, fileContent)
|
||||
expect(result.tests).toBe(0)
|
||||
expect(result.result).toBe('success')
|
||||
})
|
||||
|
||||
it('report from ./reports/rspec-json test results matches snapshot', async () => {
|
||||
const fixturePath = path.join(__dirname, 'fixtures', 'rspec-json.json')
|
||||
const outputPath = path.join(__dirname, '__outputs__', 'rspec-json.md')
|
||||
const filePath = normalizeFilePath(path.relative(__dirname, fixturePath))
|
||||
const fileContent = fs.readFileSync(fixturePath, {encoding: 'utf8'})
|
||||
|
||||
const opts: ParseOptions = {
|
||||
parseErrors: true,
|
||||
trackedFiles: ['test/main.test.js', 'test/second.test.js', 'lib/main.js']
|
||||
}
|
||||
|
||||
const parser = new RspecJsonParser(opts)
|
||||
const result = await parser.parse(filePath, fileContent)
|
||||
expect(result).toMatchSnapshot()
|
||||
|
||||
const report = getReport([result])
|
||||
fs.mkdirSync(path.dirname(outputPath), {recursive: true})
|
||||
fs.writeFileSync(outputPath, report)
|
||||
})
|
||||
|
||||
it('report does not include a title by default', async () => {
|
||||
const fixturePath = path.join(__dirname, 'fixtures', 'rspec-json.json')
|
||||
const filePath = normalizeFilePath(path.relative(__dirname, fixturePath))
|
||||
const fileContent = fs.readFileSync(fixturePath, {encoding: 'utf8'})
|
||||
|
||||
const opts: ParseOptions = {
|
||||
parseErrors: true,
|
||||
trackedFiles: []
|
||||
}
|
||||
|
||||
const parser = new RspecJsonParser(opts)
|
||||
const result = await parser.parse(filePath, fileContent)
|
||||
const report = getReport([result])
|
||||
// Report should have the badge as the first line
|
||||
expect(report).toMatch(/^!\[Tests failed]/)
|
||||
})
|
||||
|
||||
it.each([
|
||||
['empty string', ''],
|
||||
['space', ' '],
|
||||
['tab', '\t'],
|
||||
['newline', '\n']
|
||||
])('report does not include a title when configured value is %s', async (_, reportTitle) => {
|
||||
const fixturePath = path.join(__dirname, 'fixtures', 'rspec-json.json')
|
||||
const filePath = normalizeFilePath(path.relative(__dirname, fixturePath))
|
||||
const fileContent = fs.readFileSync(fixturePath, {encoding: 'utf8'})
|
||||
|
||||
const opts: ParseOptions = {
|
||||
parseErrors: true,
|
||||
trackedFiles: []
|
||||
}
|
||||
|
||||
const parser = new RspecJsonParser(opts)
|
||||
const result = await parser.parse(filePath, fileContent)
|
||||
const report = getReport([result], {
|
||||
...DEFAULT_OPTIONS,
|
||||
reportTitle
|
||||
})
|
||||
// Report should have the badge as the first line
|
||||
expect(report).toMatch(/^!\[Tests failed]/)
|
||||
})
|
||||
|
||||
it('report includes a custom report title', async () => {
|
||||
const fixturePath = path.join(__dirname, 'fixtures', 'rspec-json.json')
|
||||
const filePath = normalizeFilePath(path.relative(__dirname, fixturePath))
|
||||
const fileContent = fs.readFileSync(fixturePath, {encoding: 'utf8'})
|
||||
|
||||
const opts: ParseOptions = {
|
||||
parseErrors: true,
|
||||
trackedFiles: []
|
||||
}
|
||||
|
||||
const parser = new RspecJsonParser(opts)
|
||||
const result = await parser.parse(filePath, fileContent)
|
||||
const report = getReport([result], {
|
||||
...DEFAULT_OPTIONS,
|
||||
reportTitle: 'My Custom Title'
|
||||
})
|
||||
// Report should have the title as the first line
|
||||
expect(report).toMatch(/^# My Custom Title\n/)
|
||||
})
|
||||
})
|
||||
92
__tests__/swift-xunit.test.ts
Normal file
92
__tests__/swift-xunit.test.ts
Normal file
@@ -0,0 +1,92 @@
|
||||
import * as fs from 'fs'
|
||||
import * as path from 'path'
|
||||
|
||||
import {SwiftXunitParser} from '../src/parsers/swift-xunit/swift-xunit-parser'
|
||||
import {ParseOptions} from '../src/test-parser'
|
||||
import {DEFAULT_OPTIONS, getReport} from '../src/report/get-report'
|
||||
import {normalizeFilePath} from '../src/utils/path-utils'
|
||||
|
||||
describe('swift-xunit tests', () => {
|
||||
it('report from swift test results matches snapshot', async () => {
|
||||
const fixturePath = path.join(__dirname, 'fixtures', 'swift-xunit.xml')
|
||||
const outputPath = path.join(__dirname, '__outputs__', 'swift-xunit.md')
|
||||
const filePath = normalizeFilePath(path.relative(__dirname, fixturePath))
|
||||
const fileContent = fs.readFileSync(fixturePath, {encoding: 'utf8'})
|
||||
|
||||
const trackedFiles = ['Package.swift', 'Sources/AcmeLib/AcmeLib.swift', 'Tests/AcmeLibTests/AcmeLibTests.swift']
|
||||
const opts: ParseOptions = {
|
||||
parseErrors: true,
|
||||
trackedFiles
|
||||
}
|
||||
|
||||
const parser = new SwiftXunitParser(opts)
|
||||
const result = await parser.parse(filePath, fileContent)
|
||||
expect(result).toMatchSnapshot()
|
||||
|
||||
const report = getReport([result])
|
||||
fs.mkdirSync(path.dirname(outputPath), {recursive: true})
|
||||
fs.writeFileSync(outputPath, report)
|
||||
})
|
||||
|
||||
it('report does not include a title by default', async () => {
|
||||
const fixturePath = path.join(__dirname, 'fixtures', 'swift-xunit.xml')
|
||||
const filePath = normalizeFilePath(path.relative(__dirname, fixturePath))
|
||||
const fileContent = fs.readFileSync(fixturePath, {encoding: 'utf8'})
|
||||
|
||||
const opts: ParseOptions = {
|
||||
parseErrors: true,
|
||||
trackedFiles: []
|
||||
}
|
||||
|
||||
const parser = new SwiftXunitParser(opts)
|
||||
const result = await parser.parse(filePath, fileContent)
|
||||
const report = getReport([result])
|
||||
// Report should have the badge as the first line
|
||||
expect(report).toMatch(/^!\[Tests failed]/)
|
||||
})
|
||||
|
||||
it.each([
|
||||
['empty string', ''],
|
||||
['space', ' '],
|
||||
['tab', '\t'],
|
||||
['newline', '\n']
|
||||
])('report does not include a title when configured value is %s', async (_, reportTitle) => {
|
||||
const fixturePath = path.join(__dirname, 'fixtures', 'swift-xunit.xml')
|
||||
const filePath = normalizeFilePath(path.relative(__dirname, fixturePath))
|
||||
const fileContent = fs.readFileSync(fixturePath, {encoding: 'utf8'})
|
||||
|
||||
const opts: ParseOptions = {
|
||||
parseErrors: true,
|
||||
trackedFiles: []
|
||||
}
|
||||
|
||||
const parser = new SwiftXunitParser(opts)
|
||||
const result = await parser.parse(filePath, fileContent)
|
||||
const report = getReport([result], {
|
||||
...DEFAULT_OPTIONS,
|
||||
reportTitle
|
||||
})
|
||||
// Report should have the badge as the first line
|
||||
expect(report).toMatch(/^!\[Tests failed]/)
|
||||
})
|
||||
|
||||
it('report includes a custom report title', async () => {
|
||||
const fixturePath = path.join(__dirname, 'fixtures', 'swift-xunit.xml')
|
||||
const filePath = normalizeFilePath(path.relative(__dirname, fixturePath))
|
||||
const fileContent = fs.readFileSync(fixturePath, {encoding: 'utf8'})
|
||||
|
||||
const opts: ParseOptions = {
|
||||
parseErrors: true,
|
||||
trackedFiles: []
|
||||
}
|
||||
|
||||
const parser = new SwiftXunitParser(opts)
|
||||
const result = await parser.parse(filePath, fileContent)
|
||||
const report = getReport([result], {
|
||||
...DEFAULT_OPTIONS,
|
||||
reportTitle: 'My Custom Title'
|
||||
})
|
||||
// Report should have the title as the first line
|
||||
expect(report).toMatch(/^# My Custom Title\n/)
|
||||
})
|
||||
})
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user