Ошибка компиляции арматуры

Я использую арматуру для выполнения теста eunit с помощью команды "rebar compile eunit", но получаю информацию об ошибке:

==> myapp (compile)

==> myapp (eunit)

src/myapp_app.erl:8: badly formed 'include_lib'

src/myapp_app.erl:26: undefined macro 'assertNot/1'

ERROR: eunit failed while processing /Users/Dao/ErlProject/myapp: rebar_abort

Я действительно не знаю, как это значит, кто может сказать мне, почему?

PS: мой английский плохой, пожалуйста, прости меня

myapp_app.erl вот так:

-ifdef(TEST).

-include_lib(“eunit/include/eunit.hrl”).

-endif.

........

-ifdef(TEST).

 simple_test() ->

  ok = application:start(myapp),

  ?assertNot(undefined == whereis(myapp_sup)).

-endif.

и это пришло отсюда: https://github.com/rebar/rebar/wiki/Getting-started

Я следую за шагом, но получил ошибку!

Моя версия на эрланге - R15B03

ОС: OS X Lion

2 ответа

Решение

Основываясь на представленном вами коде, я считаю, что проблема связана с двойными кавычками, которые вы используете. Прямо сейчас вы используете какие-то наклонные кавычки, которые, если я сам копирую и вставляю их и использую то же самое определение в тестовом модуле, выдает ту же ошибку.

Вы хотите убедиться, что для ваших двойных кавычек вы используете "нормальные":

" (ASCII 34) вместо , который является Unicode.

Так что меняй

-include_lib(“eunit/include/eunit.hrl”).

в

-include_lib("eunit/include/eunit.hrl").

Убедитесь, что вы включили eunit следующим образом:

-include_lib("eunit/include/eunit.hrl").

Само собой разумеется, удостоверьтесь, что вы установили eunit вообще. Насколько я помню, он может быть не установлен по умолчанию в некоторых версиях Ubuntu, например.

Другие вопросы по тегам