gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-12-01 11:29:47 27 4
gpt4 key购买 nike

我有时会看到测试被标记为 :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/

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