У меня есть следующий тест, который я хотел бы преобразовать для использования github.com/stretchr/testify/assert
import, что было бы лучше для этого сделать?Код, как сейчас:
func TestSdk(t *testing.T) {
ctx := context.Background()
sdk, err := NewSdk(ctx)
if err != nil {
t.Errorf("Unable to get VMware SDK: %v", err)
}
defer sdk.GovClient.Logout(ctx)
}
Ошибка: FAIL |--- FAIL: TestSdk (0.00s) |sdk_test.go: 48: Невозможно получить VMware SDK: установите переменные среды: HCI_ENDPOINT, HCI_USERNAME и HCI_PASSWORD |паника: ошибка во время выполнения: неверный адрес памяти или разыменование нулевого указателя [восстановлено] |паника: ошибка во время выполнения: неверный адрес памяти или разыменование нулевого указателя |[сигнал SIGSEGV: код нарушения сегментации = 0x1 addr = 0x0 pc = 0x151cc31] |Горутин 6 [работает]: |testing.tRunner.func1 (0xc00019a100) |/usr/local/Cellar/go/1.11.1/libexec/src/testing/testing.go:792 + 0x387 |паника (0x1642c20, 0x1f46a80) |/usr/local/Cellar/go/1.11.1/libexec/src/runtime/panic.go:513 + 0x1b9 |github.com/kubicorn/kubicorn/cloud/vmware/vmwareSdkGo.TestSdk(0xc00019a100) |/Users/jonma/go/src/github.com/kubicorn/kubicorn/cloud/vmware/vmwareSdkGo/sdk_test.go:51 + 0x121 |testing.tRunner (0xc00019a100, 0x1825b48) |/usr/local/Cellar/go/1.11.1/libexec/src/testing/testing.go:827 + 0xbf |создан тестированием. (* T) .Run |/usr/local/Cellar/go/1.11.1/libexec/src/testing/testing.go:878 + 0x353 FAIL |github.com/kubicorn/kubicorn/cloud/vmware/vmwareSdkGo 0.019s
Это то, к чему я изменил, проблема с этим подходом заключается в том, что сообщение об ошибке не отображается, только какая-то длинная трассировка стека
func TestSdk(t *testing.T) {
ctx := context.Background()
sdk, err := NewSdk(ctx)
assert.Errorf("Unable to get VMware SDK: %v", err)
defer sdk.GovClient.Logout(ctx)
}
FAIL |--- FAIL: TestSdk (0.00s) |паника: ошибка во время выполнения: неверный адрес памяти или разыменование нулевого указателя [восстановлено] |паника: ошибка во время выполнения: неверный адрес памяти или разыменование нулевого указателя |[сигнал SIGSEGV: код нарушения сегментации = 0x1 addr = 0x0 pc = 0x151eecf] |Горутин 6 [работает]: |testing.tRunner.func1 (0xc00019e100) |/usr/local/Cellar/go/1.11.1/libexec/src/testing/testing.go:792 + 0x387 |паника (0x1645200, 0x1f4aab0) |/usr/local/Cellar/go/1.11.1/libexec/src/runtime/panic.go:513 + 0x1b9 |github.com/kubicorn/kubicorn/cloud/vmware/vmwareSdkGo.TestSdk(0xc00019e100) |/Users/jonma/go/src/github.com/kubicorn/kubicorn/cloud/vmware/vmwareSdkGo/sdk_test.go:57 + 0x1ef |testing.tRunner (0xc00019e100, 0x1828420) |/usr/local/Cellar/go/1.11.1/libexec/src/testing/testing.go:827 + 0xbf |создан тестированием. (* T) .Run |/usr/local/Cellar/go/1.11.1/libexec/src/testing/testing.go:878 + 0x353 FAIL |github.com/kubicorn/kubicorn/cloud/vmware/vmwareSdkGo 0.034s
Здесь я пропускаю фактическое сообщение об ошибке из вызванной функции.