Hi,
i've written a first small plugin which implements a simple WebPanel by velocity template with some conditions. Now i want to test that those conditions work as expected. Because they were implemented in the template file i believe i'll need something like Selenium to test the real output.
What would be the best way to do that? I've found something similar for Jira here. They have a 'jira-func-test-plugin' which implements some nice test classes with selenium under the hood. Is there something like that for bamboo too?
I'm looking for a good starting point for this kind of tests.
Thanks in advance for your help!
-----
Update: I've now tried to implement it myself like one would do it normally with Selenium. I added a setter to my test class to get the GeneralConfiguration and from that the baseURL of Bamboo (using GeneralConfiguration.getBaseUrl()).
package it.mypackage.path.package;
import com.atlassian.bamboo.admin.configuration.GeneralConfiguration;
import com.atlassian.bamboo.admin.configuration.GeneralConfigurationService;
import org.junit.Test;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.firefox.FirefoxDriver;
import java.net.URISyntaxException;
public class BuildResultSeleniumTest {
private WebDriver driver;
private GeneralConfiguration generalConfiguration;
public BuildResultSeleniumTest(){
driver = new FirefoxDriver();
}
public void setGeneralConfigurationService(GeneralConfigurationService generalConfigurationService){
try {
this.generalConfiguration = generalConfigurationService.getGeneralConfiguration();
} catch (URISyntaxException e) {
e.printStackTrace();
}
}
@Test
public void testImagePresentForCuedBuild(){
String address = (String) generalConfiguration.getBaseUrl();
System.out.println("Address: " + address);
driver.get(address);
}
}
As described here, Injection should work like that.
Unfortunately the variable 'address' remains NULL, so injection seems not work for tests. How do i get the baseURL in a test?
It showed out, that i was missing the correct constructor parameters.
The following worked for me:
private String baseUrl; public BuildResultSeleniumTest(ApplicationProperties applicationProperties, MyPluginComponent pluginComponent){ this.applicationProperties = applicationProperties; this.pluginComponent = pluginComponent; this.baseUrl = applicationProperties.getBaseUrl(UrlMode.ABSOLUTE); }
After that i was able to implement Selenium tests as usual..
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.