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
I am writing some unit tests but I am not sure if it's possible to run a test Test_something
that has several test cases without stopping the execution of other test cases if one fails. Or does it even make sense?
In console I would like to see something like this.
TESTCASE1: SUCCESS <message>
TESTCASE2: FAIL <message>
TESTCASE3: SUCCESS <message>
At the moment I get something like this:
TESTCASE1: SUCCESS <message>
TESTCASE2: FAIL <message>
It will naturally stop executing after TESTCASE2
fails.
You can use subtest with the help of the testing.T.Run
function. It allows to gather several test cases together and have separate status for each of them.
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
}
}