Ant와 프로그래밍에 익숙하지 않습니다."environment url"매개 변수가 전달 된 상태로 ant build.xml을 실행하십시오.
은 내가 무슨 짓을 :
내가 HtmlUnit과를 사용하여 Java에서 테스트를 작성했습니다. 개미 빌드를 사용하여 테스트를 실행할 수 있습니다. 그것은 잘 작동합니다. Jenkins에서 개미 스크립트를 실행할 수도 있습니다.
내 문제 : 내가 코드를 변경하지 않고 dev에, 무대 및 생산 환경 내 테스트를 실행할 수 있도록하려면
. 내 "ant"빌드의 일부로 이러한 환경 "URL"을 전달할 수 있습니까? 아니면이를 수행 할 다른 방법이 있습니까?
내 코드는 현재 다음과 같습니다
구성 클래스 :
package com.environments;
import java.io.FileInputStream;
import java.io.IOException;
import java.io.InputStream;
import java.util.Properties;
public class Configuration {
public static String getUrl(String environment) throws IOException {
Properties prop = new Properties();
InputStream input = null;
input = new FileInputStream("configuration/environment.properties");
prop.load(input);
String url = prop.getProperty(environment);
return url;
}
public static String setEnvironment(String url) throws Exception {
switch (url) {
case "DEV": url = Configuration.getUrl("DEV"); break;
case "STAGE": url = Configuration.getUrl("STAGE"); break;
case "LIVE": url = Configuration.getUrl("LIVE"); break;
}
return url;
}
}
테스트 클래스 :
package com.course_landingpage;
import static com.thoughtworks.twist.core.execution.TwistVerification.verifyEquals;
import org.springframework.beans.factory.annotation.Autowired;
import com.environments.Configuration;
import com.gargoylesoftware.htmlunit.WebClient;
import com.gargoylesoftware.htmlunit.html.DomElement;
import com.gargoylesoftware.htmlunit.html.HtmlAnchor;
import com.gargoylesoftware.htmlunit.html.HtmlPage;
import com.thoughtworks.twist.core.execution.TwistScenarioDataStore;
import com.ui.pagetitles.PageTitles;
public class LandingPageCarouselTest {
public static String url;
@Autowired
private TwistScenarioDataStore scenarioStore;
public LandingPageCarouselTest() throws Exception {
url = Configuration.setEnvironment("DEV");
}
// Tests for the landing page carousel
public void verifyCarouselDisplayedWithCourseInformation() throws Exception {
final WebClient webClient = new WebClient();
final HtmlPage page = webClient.getPage(url + "/home.html");
verifyEquals("Incorrect page title", PageTitles.CPD_LANDING_PAGE, page.getTitleText());
//Click the Discover More button in the carousel
final HtmlAnchor anchor = page.getAnchorByText("DISCOVER MORE");
anchor.click();
// Click right arrow to view next course in carousel
final HtmlAnchor rightArrow = page.getAnchorByText(">");
rightArrow.click();
// Click left arrow to view previous course in carousel
final HtmlAnchor leftArrow = page.getAnchorByText("<");
leftArrow.click();
// Check the course title is correct in the carousel
DomElement element = page.getFirstByXPath("/html/body/section/article/ul/li/div/h2");
final String course1Title = element.getTextContent();
verifyEquals("Course text is incorrect", course1Title, Configuration.getCourseTitleInCarousel());
webClient.closeAllWindows();
}
당신이 볼 수 있듯이, CURREN 다른 환경에서 테스트 할 때 테스트 클래스의 생성자에서 환경을 설정했습니다. 현재 "DEV"로 설정되어 있습니다. 하지만 "STAGE"또는 "LIVE"로 설정하여 다른 환경에서도 테스트 할 수 있습니다. 당신이 java
Ant 태스크를 사용하여 자바 테스트 클래스를 실행하는 경우
일반적으로 사용되는 표준은 각 환경에 대한 config.properties를 갖는 것입니다. config.properties에는 현재 환경이 무엇인지 나타내는 특성을 포함 할 수 있습니다. 당신은 그런 것을 고려 했습니까? –
괜찮습니다. 어떻게 내 개미집에서 그 속성을 사용하겠습니까? 내 개미 빌드를 실행하기 전에 해당 속성 값을 변경하고 싶습니다. 매개 변수로 전달할 수 있다면 좋을 것입니다. – user3554072
개미 빌드에서 액세스하지 않으므로 프로그래밍 방식으로 액세스 할 수 있습니다. 그러나, 누군가 당신이하려고하는 것을 정확하게하기 위해 더 나은 대답을했습니다. –