- A
- F
- P
- T
- ActiveSupport::Testing::Assertions
- ActiveSupport::Testing::ErrorReporterAssertions
- ActiveSupport::Testing::Deprecation
- ActiveSupport::Testing::ConstantStubbing
- ActiveSupport::Testing::TimeHelpers
- ActiveSupport::Testing::FileFixtures
常量
Assertion | = | Minitest::Assertion |
类公共方法
fixture_paths 链接
返回 ActiveRecord::FixtureSet
集合。
在您的 test_helper.rb
中,您必须有 require "rails/test_help"
。
来源: 在 GitHub 上
# File activesupport/lib/active_support/test_case.rb, line 122
fixture_paths=(fixture_paths) 链接
将给定路径设置为 fixture 集。
也可以追加多个路径。
ActiveSupport::TestCase.fixture_paths << "component1/test/fixtures"
在您的 test_helper.rb
中,您必须有 require "rails/test_help"
。
来源: 在 GitHub 上
# File activesupport/lib/active_support/test_case.rb, line 128
parallelize(workers: :number_of_processors, with: :processes, threshold: ActiveSupport.test_parallelization_threshold) 链接
使测试套件并行化。
接受一个 workers
参数,它控制进程分叉的次数。对于每个进程,将创建一个新的数据库,并在其后缀加上工作进程编号。
test-database-0
test-database-1
如果设置了 ENV["PARALLEL_WORKERS"]
,则会忽略 workers 参数,而使用环境变量。这对于 CI 环境或需要比本地测试更多工作进程的其他环境很有用。
如果工作进程数量设置为 1
或更少,则测试不会并行化。
如果 workers
设置为 :number_of_processors
,则工作进程数量将设置为您所在的机器上的实际核心数量。
默认的并行化方法是分叉进程。如果您想改为使用线程,可以将 with: :threads
传递给 parallelize
方法。请注意,线程并行化不会创建多个数据库,并且不适用于系统测试。
parallelize(workers: :number_of_processors, with: :threads)
线程并行化直接使用 minitest 的并行执行器。进程并行化使用 Ruby DRb 服务器。
由于并行化会带来开销,因此只有当要运行的测试数量超过 threshold
参数时才会启用它。默认值为 50,可以通过 config.active_support.test_parallelization_threshold
进行配置。
来源: 显示 | 在 GitHub 上
# File activesupport/lib/active_support/test_case.rb, line 81 def parallelize(workers: :number_of_processors, with: :processes, threshold: ActiveSupport.test_parallelization_threshold) workers = Concurrent.processor_count if workers == :number_of_processors workers = ENV["PARALLEL_WORKERS"].to_i if ENV["PARALLEL_WORKERS"] Minitest.parallel_executor = ActiveSupport::Testing::ParallelizeExecutor.new(size: workers, with: with, threshold: threshold) end
parallelize_setup(&block) 链接
为并行测试设置挂钩。如果有多个数据库或需要在进程分叉后但在测试运行前执行的任何行为,可以使用此方法。
注意:此功能在使用线程并行化时不可用。
在您的 test_helper.rb
中添加以下内容
class ActiveSupport::TestCase
parallelize_setup do
# create databases
end
end
来源: 显示 | 在 GitHub 上
# File activesupport/lib/active_support/test_case.rb, line 101 def parallelize_setup(&block) ActiveSupport::Testing::Parallelization.after_fork_hook(&block) end
parallelize_teardown(&block) 链接
并行测试的清理挂钩。如果您的应用程序使用多个读写数据库或需要在测试完成之前进行其他清理,可以使用此方法。它在分叉进程关闭之前运行。
注意:此功能在使用线程并行化时不可用。
在您的 test_helper.rb
中添加以下内容
class ActiveSupport::TestCase
parallelize_teardown do
# drop databases
end
end
来源: 显示 | 在 GitHub 上
# File activesupport/lib/active_support/test_case.rb, line 118 def parallelize_teardown(&block) ActiveSupport::Testing::Parallelization.run_cleanup_hook(&block) end
test_order() 链接
返回运行测试用例的顺序。
ActiveSupport::TestCase.test_order # => :random
可能的值是 :random
、:parallel
、:alpha
、:sorted
。默认为 :random
。
来源: 显示 | 在 GitHub 上
# File activesupport/lib/active_support/test_case.rb, line 44 def test_order ActiveSupport.test_order ||= :random end
test_order=(new_order) 链接
设置运行测试用例的顺序。
ActiveSupport::TestCase.test_order = :random # => :random
有效值为
-
:random
(以随机顺序运行测试) -
:parallel
(以并行方式运行测试) -
:sorted
(按方法名称的字母顺序运行测试) -
:alpha
(等效于:sorted
)
来源: 显示 | 在 GitHub 上
# File activesupport/lib/active_support/test_case.rb, line 34 def test_order=(new_order) ActiveSupport.test_order = new_order end
实例公共方法
assert_no_match(matcher, obj, msg = nil) 链接
别名为:refute_match
来源: 在 GitHub 上
# File activesupport/lib/active_support/test_case.rb, line 233
assert_not_empty(obj, msg = nil) 链接
别名为:refute_empty
来源: 在 GitHub 上
# File activesupport/lib/active_support/test_case.rb, line 156
assert_not_equal(exp, act, msg = nil) 链接
别名为:refute_equal
来源: 在 GitHub 上
# File activesupport/lib/active_support/test_case.rb, line 167
assert_not_in_delta(exp, act, delta = 0.001, msg = nil) 链接
别名为:refute_in_delta
来源: 在 GitHub 上
# File activesupport/lib/active_support/test_case.rb, line 178
assert_not_in_epsilon(a, b, epsilon = 0.001, msg = nil) 链接
来源: 在 GitHub 上
# File activesupport/lib/active_support/test_case.rb, line 189
assert_not_includes(collection, obj, msg = nil) 链接
别名为:refute_includes
来源: 在 GitHub 上
# File activesupport/lib/active_support/test_case.rb, line 200
assert_not_instance_of(cls, obj, msg = nil) 链接
来源: 在 GitHub 上
# File activesupport/lib/active_support/test_case.rb, line 211
assert_not_kind_of(cls, obj, msg = nil) 链接
别名为:refute_kind_of
来源: 在 GitHub 上
# File activesupport/lib/active_support/test_case.rb, line 222
assert_not_nil(obj, msg = nil) 链接
别名为:refute_nil
来源: 在 GitHub 上
# File activesupport/lib/active_support/test_case.rb, line 244
assert_not_operator(o1, op, o2 = UNDEFINED, msg = nil) 链接
别名为:refute_operator
来源: 在 GitHub 上
# File activesupport/lib/active_support/test_case.rb, line 255
assert_not_predicate(o1, op, msg = nil) 链接
别名为:refute_predicate
来源: 在 GitHub 上
# File activesupport/lib/active_support/test_case.rb, line 266
assert_not_respond_to(obj, meth, msg = nil) 链接
来源: 在 GitHub 上
# File activesupport/lib/active_support/test_case.rb, line 277
assert_not_same(exp, act, msg = nil) 链接
别名为:refute_same
来源: 在 GitHub 上
# File activesupport/lib/active_support/test_case.rb, line 288