多个应用程序的 Eunit 错误
Posted
技术标签:
【中文标题】多个应用程序的 Eunit 错误【英文标题】:Eunit error with multiple apps 【发布时间】:2012-04-30 03:08:23 【问题描述】:我的目录结构如下:
myapp
├── apps
│ ├── myapp
│ ├── myotherapp
│ └── myapp_common
├── deps
│ ├── cowboy
......
我在 myapp
主目录中使用 rebar 运行 eunit,如下所示:
./rebar skip_deps=true eunit
它为apps/
中的三个应用程序正确运行 eunit。之后它尝试在父目录myapp
中运行 eunit 并抛出以下错误:
......
==> myapp (eunit)
ERROR: eunit failed while processing /home/msheikh/myapp: 'EXIT',badmatch,error,1,
"cp: missing destination file operand after `.eunit'\nTry `cp --help' for more information.\n",
[rebar_file_utils,cp_r,2,[],
rebar_eunit,eunit,2,[],
rebar_core,run_modules,4,[],
rebar_core,execute,4,[],
rebar_core,process_dir,4,[],
rebar_core,process_commands,2,[],
rebar,main,1,[],
escript,run,2,[file,"escript.erl",line,727]]
问题:如何解决此问题或阻止 eunit 为父 myapp
目录运行?
myapp
主目录中的rebar.config
文件如下所示:
lib_dirs, ["deps", "apps"].
deps, [
lager, ".*", git, "https://github.com/basho/lager.git", branch, "master",
jsx, ".*", git, "git://github.com/talentdeficit/jsx.git", tag, "v0.9.0",
cowboy, "", git, "git://github.com/extend/cowboy.git", branch, "master",
....
].
require_otp_vsn, "R15".
escript_incl_apps, [getopt].
erl_opts, [
debug_info,
warn_missing_spec,
parse_transform, lager_transform
].
eunit_opts, [verbose].
validate_app_modules, false.
sub_dirs, [
"apps/myapp/",
"apps/myotherapp/",
"apps/myapp_common/"].
【问题讨论】:
【参考方案1】:我有相同的项目结构,并且可以正常工作。
-
您确定在***目录中没有
src
、test
、ebin
文件夹吗?
如果不是,如果您mkdir .eunit
会发生什么? (我不建议保留这个,而是从那里寻找解决方案)。
【讨论】:
以上是关于多个应用程序的 Eunit 错误的主要内容,如果未能解决你的问题,请参考以下文章
为啥 Eunit 坚持我的函数返回 ok, value 而不是?