-
Bug
-
Resolution: Fixed
-
Minor
-
None
-
-
1.0-m11, 1.0-m12
To repro:
- Navigate to a pipeline that publishes test results (I used the JDL)
- Choose a Run
- Select the "Tests" tab
Each child in an array or iterator should have a unique "key" prop. Check the render method of `TestResult`. See https://fb.me/react-warning-keys for more information.
JSON from endpoint:
"_class": "hudson.tasks.junit.TestResult", "testActions": [], "duration": 0.151, "empty": false, "failCount": 0, "passCount": 26, "skipCount": 0, "suites": [{ "cases": [{ "testActions": [], "age": 0, "className": "PhantomJS_2_1_1_(Linux_0_0_0).CommitHash", "duration": 0.049, "errorDetails": null, "errorStackTrace": null, "failedSince": 0, "name": "CommitHash renders dash with no data", "skipped": false, "skippedMessage": null, "status": "PASSED", "stderr": "", "stdout": "\n \n\n " }, { "testActions": [], "age": 0, "className": "PhantomJS_2_1_1_(Linux_0_0_0).CommitHash", "duration": 0.003, "errorDetails": null, "errorStackTrace": null, "failedSince": 0, "name": "CommitHash renders dash with invalid data", "skipped": false, "skippedMessage": null, "status": "PASSED", "stderr": "", "stdout": "\n \n\n " }, { "testActions": [], "age": 0, "className": "PhantomJS_2_1_1_(Linux_0_0_0).CommitHash", "duration": 0.006, "errorDetails": null, "errorStackTrace": null, "failedSince": 0, "name": "CommitHash renders sha-1 char hash with proper length", "skipped": false, "skippedMessage": null, "status": "PASSED", "stderr": "", "stdout": "\n \n\n " }, { "testActions": [], "age": 0, "className": "PhantomJS_2_1_1_(Linux_0_0_0).FileSize", "duration": 0.006, "errorDetails": null, "errorStackTrace": null, "failedSince": 0, "name": "FileSize renders dash with no data", "skipped": false, "skippedMessage": null, "status": "PASSED", "stderr": "", "stdout": "\n \n\n " }, { "testActions": [], "age": 0, "className": "PhantomJS_2_1_1_(Linux_0_0_0).FileSize", "duration": 0.003, "errorDetails": null, "errorStackTrace": null, "failedSince": 0, "name": "FileSize renders dash with invalid data", "skipped": false, "skippedMessage": null, "status": "PASSED", "stderr": "", "stdout": "\n \n\n " }, { "testActions": [], "age": 0, "className": "PhantomJS_2_1_1_(Linux_0_0_0).FileSize", "duration": 0.002, "errorDetails": null, "errorStackTrace": null, "failedSince": 0, "name": "FileSize renders 4 bytes", "skipped": false, "skippedMessage": null, "status": "PASSED", "stderr": "", "stdout": "\n \n\n " }, { "testActions": [], "age": 0, "className": "PhantomJS_2_1_1_(Linux_0_0_0).FileSize", "duration": 0.009, "errorDetails": null, "errorStackTrace": null, "failedSince": 0, "name": "FileSize renders 1.5 MB", "skipped": false, "skippedMessage": null, "status": "PASSED", "stderr": "", "stdout": "\n \n\n " }, { "testActions": [], "age": 0, "className": "PhantomJS_2_1_1_(Linux_0_0_0).FileSize", "duration": 0.002, "errorDetails": null, "errorStackTrace": null, "failedSince": 0, "name": "FileSize renders very large values reasonably", "skipped": false, "skippedMessage": null, "status": "PASSED", "stderr": "", "stdout": "\n \n\n " }, { "testActions": [], "age": 0, "className": "PhantomJS_2_1_1_(Linux_0_0_0).ReadableDate", "duration": 0.007, "errorDetails": null, "errorStackTrace": null, "failedSince": 0, "name": "ReadableDate renders dash with no data", "skipped": false, "skippedMessage": null, "status": "PASSED", "stderr": "", "stdout": "\n \n\n " }, { "testActions": [], "age": 0, "className": "PhantomJS_2_1_1_(Linux_0_0_0).ReadableDate", "duration": 0.017, "errorDetails": null, "errorStackTrace": null, "failedSince": 0, "name": "ReadableDate renders dash with non-ISO-8601 date string", "skipped": false, "skippedMessage": null, "status": "PASSED", "stderr": "", "stdout": "\n \n\n " }, { "testActions": [], "age": 0, "className": "PhantomJS_2_1_1_(Linux_0_0_0).ReadableDate", "duration": 0.02, "errorDetails": null, "errorStackTrace": null, "failedSince": 0, "name": "ReadableDate renders 'a few seconds ago' with current date", "skipped": false, "skippedMessage": null, "status": "PASSED", "stderr": "", "stdout": "\n \n\n " }, { "testActions": [], "age": 0, "className": "PhantomJS_2_1_1_(Linux_0_0_0).ReadableDate", "duration": 0.008, "errorDetails": null, "errorStackTrace": null, "failedSince": 0, "name": "ReadableDate renders 'an hour ago' with current date minus 60m", "skipped": false, "skippedMessage": null, "status": "PASSED", "stderr": "", "stdout": "\n \n\n " }, { "testActions": [], "age": 0, "className": "PhantomJS_2_1_1_(Linux_0_0_0).ReadableDate", "duration": 0.005, "errorDetails": null, "errorStackTrace": null, "failedSince": 0, "name": "ReadableDate renders proper tooltip without year for same year date", "skipped": false, "skippedMessage": null, "status": "PASSED", "stderr": "", "stdout": "\n \n\n " }, { "testActions": [], "age": 0, "className": "PhantomJS_2_1_1_(Linux_0_0_0).ReadableDate", "duration": 0.001, "errorDetails": null, "errorStackTrace": null, "failedSince": 0, "name": "ReadableDate renders proper tooltip with year for other year dates", "skipped": false, "skippedMessage": null, "status": "PASSED", "stderr": "", "stdout": "\n \n\n " }, { "testActions": [], "age": 0, "className": "PhantomJS_2_1_1_(Linux_0_0_0).ReadableDate", "duration": 0.002, "errorDetails": null, "errorStackTrace": null, "failedSince": 0, "name": "ReadableDate renders proper tooltip with TZ info for non-UTC dates", "skipped": false, "skippedMessage": null, "status": "PASSED", "stderr": "", "stdout": "\n \n\n " }, { "testActions": [], "age": 0, "className": "PhantomJS_2_1_1_(Linux_0_0_0).ReadableDate", "duration": 0.001, "errorDetails": null, "errorStackTrace": null, "failedSince": 0, "name": "ReadableDate renders proper tooltip as UTC for dates without TZ", "skipped": false, "skippedMessage": null, "status": "PASSED", "stderr": "", "stdout": "\n \n\n " }, { "testActions": [], "age": 0, "className": "PhantomJS_2_1_1_(Linux_0_0_0).ResultItem", "duration": 0.002, "errorDetails": null, "errorStackTrace": null, "failedSince": 0, "name": "ResultItem visible by default", "skipped": false, "skippedMessage": null, "status": "PASSED", "stderr": "", "stdout": "\n \n\n " }, { "testActions": [], "age": 0, "className": "PhantomJS_2_1_1_(Linux_0_0_0).ResultItem", "duration": 0.001, "errorDetails": null, "errorStackTrace": null, "failedSince": 0, "name": "ResultItem hidden by default", "skipped": false, "skippedMessage": null, "status": "PASSED", "stderr": "", "stdout": "\n \n\n " }, { "testActions": [], "age": 0, "className": "PhantomJS_2_1_1_(Linux_0_0_0).TimeDuration", "duration": 0.001, "errorDetails": null, "errorStackTrace": null, "failedSince": 0, "name": "TimeDuration renders dash with no data", "skipped": false, "skippedMessage": null, "status": "PASSED", "stderr": "", "stdout": "\n \n\n " }, { "testActions": [], "age": 0, "className": "PhantomJS_2_1_1_(Linux_0_0_0).TimeDuration", "duration": 0.0, "errorDetails": null, "errorStackTrace": null, "failedSince": 0, "name": "TimeDuration renders dash with invalid data", "skipped": false, "skippedMessage": null, "status": "PASSED", "stderr": "", "stdout": "\n \n\n " }, { "testActions": [], "age": 0, "className": "PhantomJS_2_1_1_(Linux_0_0_0).TimeDuration", "duration": 0.002, "errorDetails": null, "errorStackTrace": null, "failedSince": 0, "name": "TimeDuration renders 'a few seconds' with 1ms", "skipped": false, "skippedMessage": null, "status": "PASSED", "stderr": "", "stdout": "\n \n\n " }, { "testActions": [], "age": 0, "className": "PhantomJS_2_1_1_(Linux_0_0_0).TimeDuration", "duration": 0.001, "errorDetails": null, "errorStackTrace": null, "failedSince": 0, "name": "TimeDuration renders 'a few seconds' with 1ms as string", "skipped": false, "skippedMessage": null, "status": "PASSED", "stderr": "", "stdout": "\n \n\n " }, { "testActions": [], "age": 0, "className": "PhantomJS_2_1_1_(Linux_0_0_0).TimeDuration", "duration": 0.001, "errorDetails": null, "errorStackTrace": null, "failedSince": 0, "name": "TimeDuration renders '3 hours' with 3.25h", "skipped": false, "skippedMessage": null, "status": "PASSED", "stderr": "", "stdout": "\n \n\n " }, { "testActions": [], "age": 0, "className": "PhantomJS_2_1_1_(Linux_0_0_0).TimeDuration", "duration": 0.001, "errorDetails": null, "errorStackTrace": null, "failedSince": 0, "name": "TimeDuration renders a tooltip of '5m, 5s' when supplied value", "skipped": false, "skippedMessage": null, "status": "PASSED", "stderr": "", "stdout": "\n \n\n " }, { "testActions": [], "age": 0, "className": "PhantomJS_2_1_1_(Linux_0_0_0).TimeDuration", "duration": 0.001, "errorDetails": null, "errorStackTrace": null, "failedSince": 0, "name": "TimeDuration renders a tooltip of '2h, 0m, 5s' when supplied value", "skipped": false, "skippedMessage": null, "status": "PASSED", "stderr": "", "stdout": "\n \n\n " }, { "testActions": [], "age": 0, "className": "PhantomJS_2_1_1_(Linux_0_0_0).TimeDuration", "duration": 0.0, "errorDetails": null, "errorStackTrace": null, "failedSince": 0, "name": "TimeDuration renders a custom tooltip", "skipped": false, "skippedMessage": null, "status": "PASSED", "stderr": "", "stdout": "\n \n\n " }], "duration": 0.151, "id": "0", "name": "PhantomJS 2.1.1 (Linux 0.0.0)", "stderr": "", "stdout": "\n \n\n ", "timestamp": "2016-07-14T19:56:28" }] }
- links to
UI behaves correctly when all tests are passing, except for error. Not sure how it will respond they're failing.