The test will be blocked in line 108. On the other side, there's a panic in line 104. It may be not a good practice.

We should put Work (L104) into a anonymous function and try to capture the `panic` by `defer` and `recover`

E.g.

    go func () {
        defer func() {
            if err := recover(); err != nil {
                wg.Done()
                return
            }
            log.Errorf("Work should raise a panic.")
        }()
    }()