protected void setUp() throws Exception { super.setUp(); RobotParser.RobotParserCallable remoteOperation = new RobotParser.RobotParserCallable("output.xml", null, null); RobotResult result = remoteOperation.invoke( new File(new RobotGraphHelperTest().getClass().getResource("output.xml").toURI()) .getParentFile(), null); result.tally(null); // Mocked builds to play as owners of test results FreeStyleBuild mockBuild1 = mock(FreeStyleBuild.class); FreeStyleBuild mockBuild2 = mock(FreeStyleBuild.class); when(mockBuild2.compareTo(mockBuild1)).thenReturn(1); when(mockBuild1.compareTo(mockBuild2)).thenReturn(-1); // This is to pass hudson.util.Graph constructor GregorianCalendar c = new GregorianCalendar(); c.setTimeInMillis(0L); when(mockBuild1.getTimestamp()).thenReturn(c); when(mockBuild2.getTimestamp()).thenReturn(c); // set up some results chains mockResult1 = spy(result); doReturn(null).when(mockResult1).getPreviousResult(); doReturn(mockBuild1).when(mockResult1).getOwner(); mockResult2 = spy(result); doReturn(mockResult1).when(mockResult2).getPreviousResult(); doReturn(mockBuild2).when(mockResult2).getOwner(); }
@LocalData public void testFailedSince() { Hudson hudson = Hudson.getInstance(); List<Project> projects = hudson.getProjects(); Run lastRun = null; for (Project project : projects) { if (project.getName().equalsIgnoreCase("failingtests")) { lastRun = project.getLastCompletedBuild(); } } if (lastRun == null) fail("No build including Robot results was found"); RobotBuildAction action = lastRun.getAction(RobotBuildAction.class); RobotResult result = action.getResult(); RobotCaseResult firstFailed = result.getAllFailedCases().get(0); assertEquals(2, firstFailed.getFailedSince()); }