登录
首页 >  Golang >  Go问答

如何在测试用例失败时继续运行所有测试用例

来源:stackoverflow

时间:2024-03-02 11:54:26 395浏览 收藏

积累知识,胜过积蓄金银!毕竟在Golang开发的过程中,会遇到各种各样的问题,往往都是一些细节知识点还没有掌握好而导致的,因此基础知识点的积累是很重要的。下面本文《如何在测试用例失败时继续运行所有测试用例》,就带大家讲解一下知识点,若是你对本文感兴趣,或者是想搞懂其中某个知识点,就请你继续往下看吧~

问题内容

func test_something(t *testing.t) {
    // test case1: pass an array 
      // some logic here

    // test case2: pass an empty array --> this will cause test to fail
      // some logic here

    // test case3: pass something else 
      // some logic here

我正在编写一些单元测试,但我不确定是否可以运行一个包含多个测试用例的测试 test_something,如果其中一个测试用例失败,则不会停止其他测试用例的执行。或者说这是否有意义?

在控制台中我希望看到这样的东西。

testcase1: success 
testcase2: fail 
testcase3: success 

此刻我得到了这样的信息:

TESTCASE1: SUCCESS 
TESTCASE2: FAIL 

testcase2失败后自然会停止执行。


正确答案


您可以在 testing.t.run 函数的帮助下使用子测试。它允许将多个测试用例收集在一起,并且每个测试用例都有单独的状态。

func TestSomething(t *testing.T) {
    t.Run("first test case", func(t *testing.T) {
        // implement your first test case here
    })
    t.Run("second test case", func(t *testing.T) {
        // implement your second test case here
    }
}

使用 t *testing.t 您可以致电:

  • t.errorf(...):它不会停止接下来的测试。
  • t.fatalf(...):它将停止接下来的测试。

参见 official doc

今天带大家了解了的相关知识,希望对你有所帮助;关于Golang的技术知识我们会一点点深入介绍,欢迎大家关注golang学习网公众号,一起学习编程~

声明:本文转载于:stackoverflow 如有侵犯,请联系study_golang@163.com删除
相关阅读
更多>
最新阅读
更多>
课程推荐
更多>