Skip to content

Server Requirement Extension

jbdevstudioqajenkins edited this page Jul 11, 2015 · 58 revisions

RedDeer framework comes with basic support for apache tomcat server. XSD file is hosted at http://www.jboss.org/schema/reddeer/ApacheServerRequirements.xsd. Implementing support for custom server adapter is as easy as extending the ServerRequirementBase XSD file: http://www.jboss.org/schema/reddeer/ServerRequirementsBase.xsd and implementing the supporting java files.

Apache Tomcat Server requirement can help you configure the server adapter in your tests. Steps are similar to the general custom requirement extension:

  • annotate tests and utilize requirement and it's configuration
  • create configuration xml file following xsd template
  • run test with given RedDeer configuration file

Test class annotation

package org.jboss.reddeer.snippet.test;

import static org.junit.Assert.*;

import org.jboss.reddeer.eclipse.wst.server.ui.view.Server;
import org.jboss.reddeer.eclipse.wst.server.ui.view.ServersView;
import org.jboss.reddeer.eclipse.wst.server.ui.view.ServersViewEnums.ServerState;
import org.jboss.reddeer.junit.requirement.inject.InjectRequirement;
import org.jboss.reddeer.junit.runner.RedDeerSuite;
import org.jboss.reddeer.requirements.server.ServerReqState;
import org.jboss.reddeer.requirements.server.apache.tomcat.ServerRequirement;
import org.jboss.reddeer.requirements.server.apache.tomcat.ServerRequirement.ApacheTomcatServer;
import org.junit.Test;
import org.junit.runner.RunWith;

@RunWith(RedDeerSuite.class)
@ApacheTomcatServer(state = ServerReqState.RUNNING)
public class ServerRunningTest {

	@InjectRequirement
	protected ServerRequirement requirement;

	@Test
	public void isServerRunningTest() {
		ServersView sw = new ServersView();
		sw.open();
		Server s = sw.getServer(requirement.getServerNameLabelText(requirement
				.getConfig()));
		assertTrue(s.getLabel().getState().equals(ServerState.STARTED));
	}

}

source code

Example of Server configuration file

<?xml version="1.0" encoding="UTF-8"?>
<testrun xmlns="http://www.jboss.org/NS/Req" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
	xmlns:db="http://www.jboss.org/NS/db-schema" xmlns:server="http://www.jboss.org/NS/ServerReq"
	xsi:schemaLocation="http://www.jboss.org/NS/Req http://www.jboss.org/schema/reddeer/RedDeerSchema.xsd
                        http://www.jboss.org/NS/ServerReq http://www.jboss.org/schema/reddeer/ApacheServerRequirements.xsd">

	<requirements>
		<!-- Example server configuration -->
		<server:server-requirement name="Tomcat7">
			<server:type>
				<server:familyApacheTomcat version="7.0" />
			</server:type>
			<server:runtime>${apache-tomcat-7.home}</server:runtime>
		</server:server-requirement>
	</requirements>

</testrun>

source code

Set location of RedDeer configuration

-Dreddeer.config=/opt/rd-conf/
Clone this wiki locally