Use subtests with server_test.go
authorAnton Harniakou <anton.harniakou@gmail.com>
Mon, 7 Jan 2019 16:25:27 +0000 (19:25 +0300)
committerBjørn Erik Pedersen <bjorn.erik.pedersen@gmail.com>
Tue, 8 Jan 2019 13:54:11 +0000 (14:54 +0100)
Use Golang's subtests to provide a convenient way
to run specific tests.
Example:
go test -run=TestFixURL/Basic_production

commands/server_test.go

index 24f203ad0f096bc0cc65a26eabcb23d9c3e607f3..53a240145a66f7c1b7346c199cd29f6e55f30bb3 100644 (file)
@@ -97,21 +97,23 @@ func TestFixURL(t *testing.T) {
                {"No config", "", "", true, 1313, "//localhost:1313/"},
        }
 
-       for i, test := range tests {
-               b := newCommandsBuilder()
-               s := b.newServerCmd()
-               v := viper.New()
-               baseURL := test.CLIBaseURL
-               v.Set("baseURL", test.CfgBaseURL)
-               s.serverAppend = test.AppendPort
-               s.serverPort = test.Port
-               result, err := s.fixURL(v, baseURL, s.serverPort)
-               if err != nil {
-                       t.Errorf("Test #%d %s: unexpected error %s", i, test.TestName, err)
-               }
-               if result != test.Result {
-                       t.Errorf("Test #%d %s: expected %q, got %q", i, test.TestName, test.Result, result)
-               }
+       for _, test := range tests {
+               t.Run(test.TestName, func(t *testing.T) {
+                       b := newCommandsBuilder()
+                       s := b.newServerCmd()
+                       v := viper.New()
+                       baseURL := test.CLIBaseURL
+                       v.Set("baseURL", test.CfgBaseURL)
+                       s.serverAppend = test.AppendPort
+                       s.serverPort = test.Port
+                       result, err := s.fixURL(v, baseURL, s.serverPort)
+                       if err != nil {
+                               t.Errorf("Unexpected error %s", err)
+                       }
+                       if result != test.Result {
+                               t.Errorf("Expected %q, got %q", test.Result, result)
+                       }
+               })
        }
 }