2015-05-31 2 views
1

У меня есть набор тестов, который ссылается на файл csv, хранящийся на моей локальной машине, для проверки того, что определенные значения/строка ожидаются, когда я запускаю тесты. Я использую Selenium (java), с которым я связался с maven, чтобы работать в сборке Jenkins. Я написал метод для чтения в csv как 2D-массив. Это отлично работает с файловым путем /home/usr/locationОтносительные пути в Java/Selenium/Maven

Однако мне нужно поместить файл csv на многие виртуальные машины, чтобы протестировать производственные среды. Когда я пытаюсь перейти к относительному пути, например ~/location, я получаю ошибку, не найденную в файле.

У меня есть все необходимые разрешения

+0

Не хотите ли вы поместить файл в проект Selenium, если вам нужно разделить их на разных машинах? – Saifur

ответ

2

Я предлагаю, чтобы сохранить CSV файл со сборкой, и на пути к классам (например src/test/resources/csv/) или любой другой. Затем вы сможете найти файл csv из пути к классам.

Или, если вам нужен отдельный путь, то, например, src/test/csv должно быть достаточно. В этом случае вы должны иметь возможность искать путь, используя что-то вроде ./src/test/csv (поскольку рабочий каталог для сборки maven - это каталог проекта).

Если вы действительно хотите использовать домашний каталог пользователя, то вы могли бы пойти с System properties, глядя вверх user.home, однако, пожалуйста, быть в курсе возможных проблем, описанных более here

В качестве альтернативы, вы можете использовать некоторые (или управляемое приложением), чтобы файл CSV находился где-то в файловой системе, где вы могли настроить его на основе реальной среды. Я имею в виду что-то вроде запуска приложения или тестов с помощью -Dcsv.location=/proper/location/data.csv.

Смежные вопросы