2016-02-21 4 views
1

Я пытаюсь проверить функцию, которая загружает файл с диска и выполняет некоторые манипуляции с ним. У меня есть проект, разделенный на src/и test/directories. Я поместил тестовый файл в test/directory и попытался запустить модульный тест, загружающий этот файл. Однако файл, кажется, не отображается при запуске теста из IDE (IntelliJ) или консоли с использованием арматуры.Куда поместить тестовый файл для eunit?

$ ./rebar eunit 
==> traffic-emas (eunit) 
input_test: load_from_file_test...*failed* 
in function input:load_intersection_definition/1 (src/input.erl, line 40) 
in call from input_test:load_from_file_test/0 (test/input_test.erl, line 14) 
**error:{badmatch,{error,enoent}} 

Где я могу поместить тестовые файлы для eunit, чтобы сделать их видимыми?

ответ

1

Вы можете распечатать рабочую директорию в тестах eunit и посмотреть, где он думает, что он работает:

debugVal(file:get_cwd()) 

Это должно дать вам хорошее представление о том, где поставить его.

-1

Rebar's documentation suggests, что вы должны размещать тесты eunit для модуля в самом модуле. Например .:

-ifdef(TEST). 

simple_test() -> 
    ok = application:start(myapp), 
    ?assertNot(undefined == whereis(myapp_sup)). 

-endif. 
+0

Это не помогло. Тест по-прежнему не может видеть файл. В Java я просто добавляю тестовый файл в src/test/resources и загружаю его с загрузчиком классов в Unit Test. Есть ли что-то подобное в Эрланге? – slakomy