Статическая инициализация файлов свойств завершается сборкой ant - PullRequest
0 голосов
/ 10 августа 2011

У меня есть небольшой Java-проект, который я выполняю, используя TestNG + Eclipse, и он работает хорошо. Я извлек тестовые данные с помощью файла свойств и инициализирую их в одном статическом блоке моего тестового класса -

public class SanityTest extends SelTestCase {

static Properties properties = new Properties();
static String pickUp;
static String dropOff;

static {
    try {
        properties
                .load(SanityTest.class
                        .getResourceAsStream("/com/product/testdata/testdata.properties"));
        pickUp = properties.getProperty("pickUp");
        dropOff = properties.getProperty("dropOff");
    } catch (IOException e) {
        e.printStackTrace();
    }
}

/**
 * Verifies the booking of car on car hire market
 * @throws Exception
 */
@Test
public void testBookingModule() throws Exception {
    // Some tests here
   }

Но когда я выполняю то же самое, используя ant build (1.8), я сталкиваюсь со следующим исключением в целевом "run" -

 [testng] Caused by: java.lang.NullPointerException
 [testng]   at java.util.Properties$LineReader.readLine(Properties.java:418)
 [testng]   at java.util.Properties.load0(Properties.java:337)
 [testng]   at java.util.Properties.load(Properties.java:325)

Я не мог понять много и также проверил, что "bin" создан и имеет все соответствующие файлы. Я что-то пропустил?

Ответы [ 2 ]

1 голос
/ 10 августа 2011

Мне кажется странным, что вы должны использовать имя пакета / каталога, чтобы получить файл, загруженный в качестве ресурса загрузчиком классов.

Обычно, когда вы используете getResourceAsStream, вы помещаете файл данных туда, гдекласс, где находится файл .class (или в каталоге ресурсов, и eclipse скопирует его во время сборки), и вы загружаете его, указывая только имя файла.

Попробуйте

 properties.load(SanityTest.class.getResourceAsStream("testdata.properties"));

, где testdata.properties находится в той же папке, что и SanityTest.class

С уважением, stéphane

0 голосов
/ 10 августа 2011

Похоже, вы получаете поток из файла свойств.Может ли это исключение появиться в плохо отформатированном файле проп, что приводит к тому, что куда-то возвращается null?

...