1Code.require_file("../test_helper.exs", __DIR__) 2 3defmodule ExUnit.RegisterTest do 4 use ExUnit.Case 5 6 import ExUnit.CaptureIO 7 8 test "singular test types" do 9 on_exit(fn -> 10 ExUnit.configure(plural_rules: %{}) 11 end) 12 13 ExUnit.plural_rule("property", "properties") 14 15 defmodule SingularTestTypeCase do 16 use ExUnit.Case 17 18 :"property is true" = ExUnit.Case.register_test(__ENV__, :property, "is true", []) 19 20 def unquote(:"property is true")(_) do 21 assert succeed() 22 end 23 24 test "test true" do 25 assert succeed() 26 end 27 28 defp succeed, do: true 29 end 30 31 assert capture_io(fn -> 32 assert ExUnit.run() == %{failures: 0, skipped: 0, total: 2, excluded: 0} 33 end) =~ "1 property, 1 test, 0 failures" 34 end 35 36 test "plural test types" do 37 on_exit(fn -> 38 ExUnit.configure(plural_rules: %{}) 39 end) 40 41 ExUnit.plural_rule("property", "properties") 42 43 defmodule PluralTestTypeCase do 44 use ExUnit.Case 45 46 :"property is true" = ExUnit.Case.register_test(__ENV__, :property, "is true", []) 47 48 def unquote(:"property is true")(_) do 49 assert succeed() 50 end 51 52 :"property is also true" = ExUnit.Case.register_test(__ENV__, :property, "is also true", []) 53 54 def unquote(:"property is also true")(_) do 55 assert succeed() 56 end 57 58 test "test true" do 59 assert succeed() 60 end 61 62 test "test true also" do 63 assert succeed() 64 end 65 66 defp succeed, do: true 67 end 68 69 assert capture_io(fn -> 70 assert ExUnit.run() == %{failures: 0, skipped: 0, total: 4, excluded: 0} 71 end) =~ "2 properties, 2 tests, 0 failures" 72 end 73end 74