回答

收藏

如何使用 Go 中的测试包进行测试设置

技术问答 技术问答 341 人阅读 | 0 人回复 | 2023-09-12

在使用测试包时,如何设置整个测试设置,为所有测试设置阶段?
# D$ h1 T) g$ Q1 s, M+ B8 h( @5 N以 为例Nunit 中有一个[SetUp]属性。
7 m# z" t8 O( M  ?: g4 V2 N) Y[code][TestFixture]public class SuccessTests{  [SetUp] public void Init() () { / * Load test data */ }code]               
6 H: a6 w3 \7 I& t    解决方案:                                                                " |5 I6 i- F) R5 T0 R4 w5 T% e4 ^" R
                                                                从 Go 1.从4 开始,您可以实现设置/拆卸(无需在每次测试前/之后复制您的功能)。本文总结了这里的内容主要部分:* `; L  V/ g- |  M1 L+ F3 t9 ?
TestMain 主 操作goroutine 中,可以围绕 m.Run 调用任何必要的设置和拆卸。然后应使用 m.Run 的结果调用 os.Exit8 w: \& {" ^- \' m0 Y
如果测试包含一个函数,我花了一些时间试包含一个函数,func TestMain(m *testing.M)然后调用函数而不是运行测试。在此函数中,我可以定义测试将如何运行。例如,我可以实现全局设置和拆卸:: a% G3 Y# L1 n( R
golangfunc TestMain(m *testing.M)    setup()    code := m.Run()     shutdown()    os.Exit(code)}
7 ~" o6 j8 z1 L还有一些例子可以在这里找到。
& @0 i3 u/ r4 G- u( w; u4 `( Y/ W; A在最新版本中添加到 Go 测试框架的 TestMain 功能是几个测试用例的简单解决方案。TestMain 提供制测试环境、在子过程中运行不同代码或检查测试代码泄漏资源提供全局钩。大多数包不需要 TestMain,但在必要时,它是一种流行的补充。
分享到:
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则