unit-testing - 如何运行 :pending tests from command line?

标签 unit-testing elixir

我有时会看到测试被标记为 :pending

ExUnit.start
ExUnit.configure(exclude: :pending)

defmodule SublistTest do
  use ExUnit.Case, async: true

  test "empty equals empty" do
    assert Sublist.compare([], []) == :equal
  end

  @tag :pending
  test "empty is a sublist of anything" do
    assert Sublist.compare([], [nil]) == :sublist
  end
end

显然,当您从 shell 运行测试时,会被排除在执行之外
elixir sublist_test.exs

有没有办法包括:pending从命令行运行测试时进行测试?

第二个问题:为什么人们将测试标记为 :pending .

最佳答案

您可以使用 mix test 执行此操作Mix 项目中的任务。 Mix 项目的设置非常简单:

$ mix new sublist

您可以在 test/test_helper.exs 中指定默认排除项:
ExUnit.start()
ExUnit.configure(exclude: :pending)

然后你可以在 test/sublist_test.exs 中编写你的测试.要运行测试,请执行
$ mix test

并包括待定的测试
$ mix test --include pending

现在是您的第二个问题:人们通常将测试标记为待处理,因为它们尚未实现,但他们不想忘记它们。例如,您可能在紧迫的期限内,但希望确保测试最终能够完成。或者也许测试还没有工作,因为你需要先实现其他的东西。

如果默认情况下不排除测试,它们会传达错误信息:受影响的测试是红色的。但是他们更愿意做项目而不是实际测试,所以默认情况下他们不应该失败。

关于unit-testing - 如何运行 :pending tests from command line?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33497700/

相关文章:

c++ - 如何测试不在公共(public)界面中的功能?

java - 单元测试静态方法

javascript - 在 mocha 单元测试中包含模块

string - 如何在Elixir字符串中双引号嵌入?

postgresql - 在带有 Postgres 的 Elixir 中,我怎样才能让数据库返回未使用的枚举值?

scala - 使用 scalamock 在 scala 中使用 ClassTag 的模拟方法

python - 如何模拟对 __next__ 的调用

elixir - 在 phoenix/elixir 中测试文件上传

enums - 尝试使用 Enum.reduce

erlang - 如何使用 Elixir 连接到 Cassandra