This adds an extension point, TestNameTransformer, which is called to transform JUnit test case names.
This is useful for JVM languages like scala which are more flexible than java with identifier naming.
Scala, for example, allows you to write test names between back ticks, and then encodes the name using valid java identifiers.
This extension point would allow a plugin to transform those names back in to readable names when they are displayed on the test result page.
https://jenkins.ci.cloudbees.com/job/core/job/jenkins_main_trunk/850/testReport/jenkins.security/RekeySecretAdminMonitorTest/testBasicWorkflow/
com.gargoylesoftware.htmlunit.FailingHttpStatusCodeException: 400 Bad Request for http://localhost:60027//administrativeMonitor/jenkins.security.RekeySecretAdminMonitor/scan
at com.gargoylesoftware.htmlunit.WebClient.throwFailingHttpStatusCodeExceptionIfNecessary(WebClient.java:549)
at com.gargoylesoftware.htmlunit.WebClient.getPage(WebClient.java:333)
at com.gargoylesoftware.htmlunit.WebClient.getPage(WebClient.java:357)
at com.gargoylesoftware.htmlunit.html.HtmlForm.submit(HtmlForm.java:196)
at org.jvnet.hudson.test.HudsonTestCase.submit(HudsonTestCase.java:1178)
at jenkins.security.RekeySecretAdminMonitorTest.testBasicWorkflow(RekeySecretAdminMonitorTest.java:112)
java.lang.Exception: Invalid request submission
at org.kohsuke.stapler.HttpResponses.error(HttpResponses.java:79)
at jenkins.security.RekeySecretAdminMonitor.doScan(RekeySecretAdminMonitor.java:117)
This bug indicates that people are having trouble understanding who's
responsible for aborting the build. This change records that
information through the logger.
On Chrome (and possibly others), an inline element like span doesn't enlarge
its size to cover its content, so the 1px place holder wasn't taking effect.
To ensure the minimum height of 16px, make it an inline-block element. I'm
not entirely sure how an inline-block element with no fixed width would behave,
but with a bit of casual testing, the text inside seems to wrap OK.
For example, a new job might have a trigger setting to begin with,
or it might resolve a reference that was previously failing (for
example, 'up' job referring to 'down' job and the 'down' job is newly
created.)
Observations:
- When marked inside, moving the mouse to <A> and clicking the context menu becomes easier,
because you can move the mouse toward the hot spot area and it'll activate.
Otherwise you have to move the mouse over to <A>, then move the mouse on the side, click it,
then click the menu, which adds cognitive stress.
- Marking model link as inside creates an empty space to the right of <A>, which looks
odd if hyperlinks appear inline or if some other text follows it.
Given that, my guiding principle for this change is:
- any model link that is the last child of a block element gets marked as inside
- I've adjust a few text to get rid of the single-letter training text after a model link,
like "(#3)" to "- #3"
- If another inline element follows a model link, leave it as is.
This does create an ugly overlap.
I'm not really sure what this code is doing or what ID is supposed to look like. So this is just a minimum-intrusion change to avoid an exception.
java.lang.StringIndexOutOfBoundsException: String index out of range: -1
at java.lang.String.substring(String.java:1875)
at hudson.tasks.junit.PackageResult.findCorrespondingResult(PackageResult.java:86)
at hudson.tasks.junit.TestResult.findCorrespondingResult(TestResult.java:295)
at hudson.tasks.test.AbstractTestResultAction.findCorrespondingResult(AbstractTestResultAction.java:183)
at hudson.tasks.test.TestResult.getResultInBuild(TestResult.java:162)
at hudson.tasks.junit.History.getList(History.java:82)
at hudson.tasks.junit.History$1.createDataSet(History.java:105)
at hudson.tasks.junit.History$GraphImpl.createGraph(History.java:169)
at hudson.util.Graph.render(Graph.java:87)
at hudson.util.Graph.doPng(Graph.java:98)