如何使Elixir混合测试输出更详细? [英] How can I make Elixir mix test output more verbose?
问题描述
在我的Elixir / Phoenix应用程序中,当我运行时
In my Elixir/Phoenix app, when I run
mix test
我得到的输出如下:
$ mix test
....
Finished in 0.09 seconds
4 tests, 0 failures
每个成功的测试都带有点。
with dots for each test that succeeded.
如何输出成功通过的测试的名称?
How do I output the names of the tests that succeed instead?
在带有rspec的Rails中,我曾经使用目录中的.rspec文件来执行此操作:
In Rails with rspec I used to do this with a .rspec file in the directory that looked like:
$ cat .rspec
--color
-fd
--tty
Elixir中是否有等同物?
Is there an equivalent in Elixir?
推荐答案
打印通过测试,您可以将-trace
参数传递给 mix test
。例如,这是 httpoison
包的当前主分支上的 mix test --trace
的输出:
To print the names of the passing tests, you can pass --trace
argument to mix test
. For example, here's the output of mix test --trace
on the current master branch of httpoison
package:
$ mix test --trace
HTTPoisonTest
Starting HTTParrot on port 8080
Starting HTTParrot on port 8433 (SSL)
Starting HTTParrot on unix socket httparrot.sock
* test post binary body (97.1ms)
* test https scheme (57.8ms)
* test option follow redirect relative url (4.0ms)
* test option follow redirect absolute url (2.6ms)
* test put (0.6ms)
* test request headers as a map (0.5ms)
* test get (1.5ms)
* test head (0.5ms)
* test delete (1.5ms)
* test asynchronous redirected get request (2.3ms)
* test send cookies (4.9ms)
* test post charlist body (0.7ms)
* test patch (0.5ms)
* test post form data (0.6ms)
* test exception (6.0ms)
* test get with params (2.8ms)
* test asynchronous request (0.5ms)
* test explicit http scheme (0.5ms)
* test put without body (0.8ms)
* test multipart upload (8.5ms)
* test options (0.5ms)
* test basic_auth hackney option (1.6ms)
* test http+unix scheme (4.4ms)
* test asynchronous request with explicit streaming using [async: :once] (304.1ms)
* test cached request (2.1ms)
* test post streaming body (3.8ms)
* test char list URL (0.7ms)
HTTPoisonBaseTest
* test request body using ExampleDefp (124.1ms)
* test passing ssl option (110.9ms)
* test passing connect_timeout option (109.9ms)
* test passing recv_timeout option (103.4ms)
* test passing proxy option (106.6ms)
* test passing follow_redirect option (105.3ms)
* test passing proxy option with proxy_auth (106.9ms)
* test request raises error tuple (104.9ms)
* test passing max_redirect option (115.6ms)
* test request body using Example (111.6ms)
Finished in 2.0 seconds
37 tests, 0 failures
Randomized with seed 264353
您还可以通过更改 test_helper.exs
中的 ExUnit.start
行将默认情况下将此选项设置为true。 >:
You can also set this option to true by default by changing the ExUnit.start
line in test_helper.exs
:
ExUnit.start(trace: true)
如果要完全自定义输出,则可以实现自己的格式化程序(请参见 https://github.com/elixir-lang/elixir/blob/master/lib/ex_unit/lib/ex_unit/cli_formatter.ex 例如;这是默认的格式化程序),并配置ExUnit以使用它:
If you want completely custom output, you can implement your own formatter (see https://github.com/elixir-lang/elixir/blob/master/lib/ex_unit/lib/ex_unit/cli_formatter.ex for an example; that's the default formatter) and configure ExUnit to use it:
ExUnit.start(formatters: [YourFormatterModule])
这篇关于如何使Elixir混合测试输出更详细?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!