2009-10-12 2 views
18

다양한 준비 환경에서 실행해야하는 JUnit 테스트가 있습니다. 각 환경에는 다른 로그인 자격 증명 또는 해당 환경과 관련된 다른 측면이 있습니다. 내 계획은 환경 변수를 VM에 전달하여 사용할 환경을 지정하는 것입니다. 그런 다음 해당 var를 사용하여 특성 파일에서 읽습니다.JUnit은 테스트를 위해 특성 파일을 지원합니까?

JUnit은 .properties 파일을 읽을 수있는 기능을 가지고 있습니까?

답변

24

java에는 .properties 파일을 읽을 수있는 기능이 내장되어 있으며 JUnit에는 테스트 슈트를 실행하기 전에 설정 코드를 실행할 수있는 기능이 내장되어 있습니다.

자바 독서 특성 :

Properties p = new Properties(); 
p.load(new FileReader(new File("config.properties"))); 

junit startup documentation

함께 그 둘을 놓고 당신은 당신이 필요 있어야합니다.

+2

ClassLoader를 사용해야 할 수도 있습니다. http://stackoverflow.com/a/9983486/640378 – mauryat

1

설정 방법에서 속성 파일을 읽을 수 없습니까?

1
// 
// Load properties to control unit test behaviour. 
// Add code in setUp() method or any @Before method (JUnit4). 
// 
// Corrected previous example: - Properties.load() takes an InputStream type. 
// 
import java.io.File; 
import java.io.FileInputStream;   
import java.util.Properties; 

Properties p = new Properties(); 
p.load(new FileInputStream(new File("unittest.properties"))); 

// loading properties in XML format   
Properties pXML = new Properties(); 
pXML.loadFromXML(new FileInputStream(new File("unittest.xml"))); 
18

일반적으로 단위 테스트의 속성에 대한 클래스 경로 상대 파일을 사용하는 것이 바람직하다, 그래서 그들은 파일 경로에 대한 걱정없이 실행할 수 있습니다. 경로는 devbox 나 빌드 서버 또는 다른 곳에서 다를 수 있습니다. 이것은 개미, 개미, 변화없이 일식에서 또한 작동합니다.

private Properties props = new Properties(); 

InputStream is = ClassLoader.getSystemResourceAsStream("unittest.properties"); 
try { 
    props.load(is); 
} 
catch (IOException e) { 
// Handle exception here 
} 

클래스 경로의 루트에 "unittest.properties"파일을 넣습니다.

+2

이것은 좋은 정보입니다. 당신은 이미 받아 들여진 대답에 대해 이것을 논평하는 것으로 생각할 수 있습니다; 그들의 결과에서 이것을 가로 지르는 누군가가 읽을 가능성이 훨씬 더 높습니다. – chb

관련 문제