2016-08-03 3 views
1

testNG와 Selenium을 사용하여 애플리케이션의 여러 기능 테스트를 실행하고 있습니다.Maven을 사용하여 jar 파일에서 testNG 프로젝트 실행하기

더 안정적인 테스트를하려면 프로젝트 폴더 안에 firefox 바이너리를 포함시키고이 특정 바이너리를 기본 브라우저가 아닌 다른 브라우저라고 부르기로 결정했습니다.

내가 지금 직면하는 문제는 누군가가 내 테스트를 사용하고 싶다면 이클립스에서 프로젝트를 가져 와서 Java 8 라이브러리를 다시 링크하고 일식에 TestNG를 설치하고 셀레늄 항아리를 프로젝트에 추가해야합니다. testNG 구성을 작성하고 마지막으로 선택한 XML로이를 실행하십시오.

자바 SeleniumTestNGTest의 myXmlFile.xml이

이 방법은 다른를 피할 것이다 : 나는 간단한 가능한이 뭔가처럼 내가 명령 줄에서 호출 할 jar 파일로 프로젝트를 변환하는 경우 알고 싶어 설정이 위에 쓴? java를 사용하여 jar 파일에서 testNG 테스트를 호출 할 수 있습니까? firefox가 jar 파일에서 실행 가능합니까?

편집 1 : 좋은 제안은 내 소스를 maven 프로젝트로 마이그레이션하는 것입니다. 그러나 여전히 같은 질문이 남아 있습니다. Maven은 테스트 프로젝트가 필요한 설정을 관리 할 수 ​​있습니까? (셀레늄 항아리, 자바 8 라이브러리, testNG 항아리, 파이어 폭스 브라우저 실행)

+0

이것이 maven이 인기있는 이유입니다. 소스를 Maven 프로젝트로 마이그레이션하는 것을 고려하십시오. –

+0

hello thorbjorn이 (가) 과부하 상태입니다. 어떻게하면 더 많은 도움이 될 수 있겠습니까? 나는 그것이 프로젝트의 의존성을 관리 할 수 ​​있고 인터넷에서 기대할 것이지만 만약 내가 당신에게서 내 문제에 대해 어떻게하면 좋을지에 대한 정보를 좀 더 가질 수 있다면 좋을 것이다. –

+0

@BobReynolds Maven에는 매뉴얼이 있습니다. 스택 오버 플로우 (stackoverflow) 응답에서 단락 정보를 얻을 수는 없습니다. 그러나 당신의 질문이 Maven을 사용하는 것에 관한 것이 아니기 때문에, Maven을 사용하여 어떤 종류의 대답을 생성하는 것은 그 대답을 주제로부터 벗어나게 할 것입니다. – Gimby

답변

1

마지막으로 나는 maven을 사용하지 않았고, 방금 프로젝트에서 메인을 만들었습니다. main은 programm 인수에 전달 된 XML 파일에 지정된 testNG 모음을 호출합니다. 이 방법을 사용하면 extern 라이브러리 (라이브러리 testNG 및 셀레늄은 이미 내부에 있음)를 신경 쓰지 않고 jar에서 테스트를 실행할 수 있습니다. 여기

주요의 코드는 아무도 도울 수 있다면 : 그럼 당신은 그냥 이클립스 가야

public class Runner { 

public static void main(String[] args) throws IOException { 

    if(args.length != 2) { 
     System.out.println("Usage : <xmlFile> <OutputFileName>"); 
     System.exit(-1); 
    } 

    Path path = Paths.get(args[0]);//Path to the xml 

    new PrintWriter(args[1]).close(); 

    Charset charset = StandardCharsets.UTF_8; 

    String content = new String(Files.readAllBytes(path), charset); 
    content = content.replaceAll("theOutputFileNamePattern", args[1]); 
    Files.write(path, content.getBytes(charset)); 

    //We create a testNG object to run the test specified in the xml file 
    TestListenerAdapter tla = new TestListenerAdapter(); 
    TestNG testng = new TestNG(); 

    List<String> suites = Lists.newArrayList(); 
    suites.add(args[0]); 

    testng.setTestSuites(suites); 

    testng.run(); 

} 

} 

는 다음 파일에 CLIC -> 내보내기 ->의 Runnable JAR 파일 - 구성을 선택> 그 내보 내기 -> 마침을 누릅니다.

관련 문제