Подтвердить что ты не робот

Поддерживает ли JUnit файлы свойств для тестов?

У меня есть тесты JUnit, которые нужно запускать в различных различных промежуточных средах. Каждая из сред имеет разные учетные данные для входа или другие аспекты, характерные для этой среды. Мой план состоит в том, чтобы передать переменную окружения в виртуальную машину, чтобы указать, какую среду использовать. Затем используйте этот var для чтения из файла свойств.

Есть ли у JUnit какие-либо возможности для создания файла .properties?

4b9b3361

Ответ 1

java имеет встроенные возможности для чтения файла .properties, а JUnit имеет встроенные возможности запуска кода установки перед выполнением набора тестов.

Свойства чтения java:

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

junit startup documentation

поместите эти 2 вместе, и вы должны иметь то, что вам нужно.

Ответ 2

Обычно рекомендуется использовать относительные файлы класса для свойств unit test, поэтому они могут запускаться, не беспокоясь о путях файлов. Путь может быть другим в вашем блоке dev, или сервере сборки, или где-либо когда-либо. Это также будет работать от ant, maven, eclipse без изменений.

private Properties props = new Properties();

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

поместив файл "unittest.properties" в корень пути к классам.

Ответ 3

Не можете ли вы просто прочитать файл свойств в вашем методе настройки?

Ответ 4

//
// 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")));