gpt4 book ai didi

erlang - 使用 erl -noshell 从控制台运行 eunit 测试

转载 作者:行者123 更新时间:2023-12-03 22:00:21 24 4
gpt4 key购买 nike

我想从控制台运行以下 eunit 测试命令

eunit:test([test_module, [verbose]).

我试过这个,但似乎不起作用
erl -noshell -pa ./ebin -s eunit test test_module verbose -init stop
~/uid_server$erl -noshell -pa ./ebin -s eunit test test_module verbose -init stop
undefined
*** test module not found ***
::test_module

=======================================================
Failed: 0. Skipped: 0. Passed: 0.
One or more tests were cancelled.

您知道如何从控制台正确传递不简单的参数吗?

最佳答案

你的参数看起来不对。这应该有效:

erl -noshell -pa ebin -eval "eunit:test(test_module, [verbose])" -s init stop
-s只能通过指定模块和函数名来运行不带参数的函数(例如 initstop 来执行 init:stop() )。

您还可以将一个列表传递给 arity 1 的函数,如下所示:
-s foo bar a b c

会打电话
foo:bar([a,b,c])

所有参数仅作为原子列表传递(即使您尝试使用其他一些字符,例如数字,它们也会转换为原子)。

因此,如果你想运行 eunit:test/2,你想传递两个参数而不仅仅是原子你必须使用 -eval它将包含 Erlang 代码的字符串作为参数。全部 -eval-s函数按照定义的顺序依次执行。

另外,请确保您的测试代码也在 ./ebin 中(否则写 -pa ebin test_ebin 其中 test_ebin 是您的测试代码所在的位置)。

关于erlang - 使用 erl -noshell 从控制台运行 eunit 测试,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5082267/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com