[JENKINS-52154] Expand passed unit tests (#1765)

* [JENKINS-52154] fix non expanded passed unit tests

Signed-off-by: olivier lamy <olamy@apache.org>
This commit is contained in:
Olivier Lamy 2018-07-03 08:29:13 +02:00 committed by GitHub
parent 5cffd5346b
commit 9f7f689502
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
9 changed files with 111 additions and 8 deletions

View File

@ -19,7 +19,7 @@ import org.openqa.selenium.WebElement;
import java.io.IOException;
@RunWith(ATHJUnitRunner.class)
public class TestResultsTest
public class TestResultsErrorStdOutTest
extends BlueOceanAcceptanceTest{
@Inject
@ -40,20 +40,27 @@ public class TestResultsTest
git.writeJenkinsFile(loadJenkinsFile());
git.writeFile("TEST-io.blueocean.StdoutStderr.xml" ,loadResource("TEST-io.blueocean.StdoutStderr.xml"));
git.writeFile("TEST-io.blueocean.NoErrorMessage.xml" ,loadResource("TEST-io.blueocean.NoErrorMessage.xml"));
git.writeFile("TEST-io.blueocean.Success.xml" ,loadResource("TEST-io.blueocean.Success.xml"));
git.addAll();
git.commit("First");
pipeline = mbpFactory.pipeline("TestResultsTest").createPipeline(git);
pipeline = mbpFactory.pipeline("TestResultsErrorStdOutTest").createPipeline(git);
sseClient.untilEvents(pipeline.buildsFinished);
}
@Test
public void testTests(){
public void std_out_visible(){
RunDetailsTestsPage runDetailsTestsPage = pipeline.getRunDetailsTestsPage().open("master", 1);
runDetailsTestsPage.getWaitUntil().click( By.xpath( "//span[contains(text(), 'StdOut')]" ) );
runDetailsTestsPage.getWaitUntil().until( By.xpath( "//div[@class='test-console']/h4[contains(text(), 'Stacktrace')]") );
runDetailsTestsPage.getWaitUntil().until( By.xpath( "//div[@class='test-console']/h4[contains(text(), 'Standard Error')]"));
runDetailsTestsPage.getWaitUntil().until( By.xpath( "//div[@class='test-console']/h4[contains(text(), 'Standard Output')]"));
runDetailsTestsPage.getWaitUntil().click( By.xpath( "//span[contains(text(), 'io.blueocean.TestResults.StdOut')]" ) );
runDetailsTestsPage.getWaitUntil().until( By.xpath( "//h4[contains(text(), 'Stacktrace')]") );
runDetailsTestsPage.getWaitUntil().until( By.xpath( "//h4[contains(text(), 'Standard Error')]"));
runDetailsTestsPage.getWaitUntil().until( By.xpath( "//h4[contains(text(), 'Standard Output')]"));
runDetailsTestsPage.getWaitUntil().until( By.xpath( "//span[@class='line-content' and contains(text(), 'stdout msg')]") );
runDetailsTestsPage.getWaitUntil().click( By.xpath( "//span[contains(text(), 'io.jenkins.blueocean.commons.ExportTest')]" ) );
runDetailsTestsPage.getWaitUntil().until( By.xpath( "//span[@class='line-content' and contains(text(), 'success_stdout_msg')]") );
runDetailsTestsPage.getWaitUntil().until( By.xpath( "//span[@class='line-content' and contains(text(), 'success_stderr_msg')]") );
}
}

View File

@ -0,0 +1,75 @@
<?xml version="1.0" encoding="UTF-8"?>
<testsuite xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="https://maven.apache.org/surefire/maven-surefire-plugin/xsd/surefire-test-report.xsd" name="io.jenkins.blueocean.commons.ExportTest" time="0.614" tests="1" errors="0" skipped="0" failures="0">
<properties>
<property name="java.runtime.name" value="Java(TM) SE Runtime Environment"/>
<property name="sun.boot.library.path" value="/Library/Java/JavaVirtualMachines/jdk1.8.0_121.jdk/Contents/Home/jre/lib"/>
<property name="java.vm.version" value="25.121-b13"/>
<property name="gopherProxySet" value="false"/>
<property name="java.vm.vendor" value="Oracle Corporation"/>
<property name="maven.multiModuleProjectDirectory" value="/Users/olamy/dev/sources/jenkins/blueocean-plugin"/>
<property name="java.vendor.url" value="http://java.oracle.com/"/>
<property name="path.separator" value=":"/>
<property name="guice.disable.misplaced.annotation.check" value="true"/>
<property name="java.vm.name" value="Java HotSpot(TM) 64-Bit Server VM"/>
<property name="file.encoding.pkg" value="sun.io"/>
<property name="user.country" value="AU"/>
<property name="sun.java.launcher" value="SUN_STANDARD"/>
<property name="sun.os.patch.level" value="unknown"/>
<property name="java.vm.specification.name" value="Java Virtual Machine Specification"/>
<property name="user.dir" value="/Users/olamy/dev/sources/jenkins/blueocean-plugin"/>
<property name="java.runtime.version" value="1.8.0_121-b13"/>
<property name="java.awt.graphicsenv" value="sun.awt.CGraphicsEnvironment"/>
<property name="java.endorsed.dirs" value="/Library/Java/JavaVirtualMachines/jdk1.8.0_121.jdk/Contents/Home/jre/lib/endorsed"/>
<property name="os.arch" value="x86_64"/>
<property name="java.io.tmpdir" value="/var/folders/lj/91x5yt6x07x79t9297g4s5c40000gp/T/"/>
<property name="line.separator" value="&#10;"/>
<property name="java.vm.specification.vendor" value="Oracle Corporation"/>
<property name="os.name" value="Mac OS X"/>
<property name="classworlds.conf" value="/Users/olamy/softs/maven/trunk/bin/m2.conf"/>
<property name="sun.jnu.encoding" value="UTF-8"/>
<property name="maven.conf" value="/Users/olamy/softs/maven/trunk/conf"/>
<property name="java.specification.name" value="Java Platform API Specification"/>
<property name="java.class.version" value="52.0"/>
<property name="sun.management.compiler" value="HotSpot 64-Bit Tiered Compilers"/>
<property name="os.version" value="10.13.5"/>
<property name="library.jansi.path" value="/Users/olamy/softs/maven/trunk/lib/jansi-native"/>
<property name="http.nonProxyHosts" value="local|*.local|169.254/16|*.169.254/16"/>
<property name="user.home" value="/Users/olamy"/>
<property name="user.timezone" value="Australia/Sydney"/>
<property name="java.awt.printerjob" value="sun.lwawt.macosx.CPrinterJob"/>
<property name="java.specification.version" value="1.8"/>
<property name="file.encoding" value="UTF-8"/>
<property name="user.name" value="olamy"/>
<property name="java.vm.specification.version" value="1.8"/>
<property name="sun.arch.data.model" value="64"/>
<property name="java.home" value="/Library/Java/JavaVirtualMachines/jdk1.8.0_121.jdk/Contents/Home/jre"/>
<property name="sun.java.command" value="org.codehaus.plexus.classworlds.launcher.Launcher clean install -T3"/>
<property name="java.specification.vendor" value="Oracle Corporation"/>
<property name="user.language" value="en"/>
<property name="awt.toolkit" value="sun.lwawt.macosx.LWCToolkit"/>
<property name="java.vm.info" value="mixed mode"/>
<property name="java.version" value="1.8.0_121"/>
<property name="sun.boot.class.path" value="/Library/Java/JavaVirtualMachines/jdk1.8.0_121.jdk/Contents/Home/jre/lib/resources.jar:/Library/Java/JavaVirtualMachines/jdk1.8.0_121.jdk/Contents/Home/jre/lib/rt.jar:/Library/Java/JavaVirtualMachines/jdk1.8.0_121.jdk/Contents/Home/jre/lib/sunrsasign.jar:/Library/Java/JavaVirtualMachines/jdk1.8.0_121.jdk/Contents/Home/jre/lib/jsse.jar:/Library/Java/JavaVirtualMachines/jdk1.8.0_121.jdk/Contents/Home/jre/lib/jce.jar:/Library/Java/JavaVirtualMachines/jdk1.8.0_121.jdk/Contents/Home/jre/lib/charsets.jar:/Library/Java/JavaVirtualMachines/jdk1.8.0_121.jdk/Contents/Home/jre/lib/jfr.jar:/Library/Java/JavaVirtualMachines/jdk1.8.0_121.jdk/Contents/Home/jre/classes"/>
<property name="java.vendor" value="Oracle Corporation"/>
<property name="java.awt.headless" value="true"/>
<property name="file.separator" value="/"/>
<property name="java.vendor.url.bug" value="http://bugreport.sun.com/bugreport/"/>
<property name="sun.cpu.endian" value="little"/>
<property name="sun.io.unicode.encoding" value="UnicodeBig"/>
<property name="socksNonProxyHosts" value="local|*.local|169.254/16|*.169.254/16"/>
<property name="ftp.nonProxyHosts" value="local|*.local|169.254/16|*.169.254/16"/>
<property name="sun.cpu.isalist" value=""/>
</properties>
<testcase name="test_json" classname="io.jenkins.blueocean.commons.ExportTest" time="0.498">
<system-out>success_stdout_msg
success_stdout_msg
success_stdout_msg
</system-out>
<system-err>success_stderr_msg
success_stderr_msg
success_stderr_msg
success_stderr_msg
success_stderr_msg
</system-err>
</testcase>
</testsuite>

View File

@ -22,7 +22,7 @@ export default class TestCaseResultRow extends Component {
render() {
const { testCase, translation, locale = 'en' } = this.props;
const duration = TimeDuration.format(testCase.duration, translation, locale);
const showTestCase = testCase.errorStackTrace || testCase.errorDetails || this.stdout || this.stderr;
const showTestCase = testCase.errorStackTrace || testCase.errorDetails || testCase.hasStdLog;
let statusIndicator = null;
switch (testCase.status) {
case 'FAILED':

View File

@ -10,6 +10,7 @@ import io.jenkins.blueocean.rest.Reachable;
import io.jenkins.blueocean.rest.factory.BlueTestResultFactory;
import io.jenkins.blueocean.rest.hal.Link;
import io.jenkins.blueocean.rest.model.BlueTestResult;
import org.apache.commons.lang.StringUtils;
import org.kohsuke.accmod.Restricted;
import org.kohsuke.accmod.restrictions.NoExternalUse;
@ -122,6 +123,13 @@ public class BlueJUnitTestResult extends BlueTestResult {
return log;
}
@Override
public boolean hasStdLog()
{
return StringUtils.isNotBlank( testResult.getStderr() ) //
|| StringUtils.isNotBlank( testResult.getStdout() );
}
@Extension
public static class FactoryImpl extends BlueTestResultFactory {
@Override

View File

@ -184,6 +184,12 @@ public class BlueTestResultContainerImplTest extends BaseTest {
return name;
}
@Override
public boolean hasStdLog()
{
return false;
}
@Override
public Link getLink()
{

View File

@ -17,6 +17,7 @@ public abstract class BlueTestResult extends Resource {
public static final String AGE = "age";
public static final String STDERR = "stdErr";
public static final String STDOUT = "stdOut";
public static final String HAS_STDLOG = "hasStdLog";
public static final String STATE = "state";
public static final String ERROR_STACK_TRACE = "errorStackTrace";
public static final String ERROR_DETAILS = "errorDetails";
@ -76,6 +77,12 @@ public abstract class BlueTestResult extends Resource {
@WebMethod(name= STDOUT)
public abstract String getStdOut();
@Exported(name = HAS_STDLOG )
/**
* @return <code>true</code> if the result has stOut or stErr to serve
*/
public abstract boolean hasStdLog();
protected abstract String getUniqueId();
@Override