Skip to content

Commit 9dc780e

Browse files
committed
feat: support to pass env in the grpc server
1 parent 82f2fdf commit 9dc780e

File tree

4 files changed

+151
-229
lines changed

4 files changed

+151
-229
lines changed

pkg/server/remote_server.go

Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,7 @@ import (
55
"bytes"
66
context "context"
77
"fmt"
8+
"os"
89
"strings"
910

1011
"github.com/linuxsuren/api-testing/pkg/render"
@@ -25,6 +26,22 @@ func NewRemoteServer() RunnerServer {
2526
// Run start to run the test task
2627
func (s *server) Run(ctx context.Context, task *TestTask) (reply *HelloReply, err error) {
2728
var suite *testing.TestSuite
29+
if task.Env == nil {
30+
task.Env = map[string]string{}
31+
}
32+
33+
// TODO may not safe in multiple threads
34+
oldEnv := map[string]string{}
35+
for key, val := range task.Env {
36+
oldEnv[key] = os.Getenv(key)
37+
os.Setenv(key, val)
38+
}
39+
40+
defer func() {
41+
for key, val := range oldEnv {
42+
os.Setenv(key, val)
43+
}
44+
}()
2845

2946
switch task.Kind {
3047
case "suite":
@@ -69,6 +86,7 @@ func (s *server) Run(ctx context.Context, task *TestTask) (reply *HelloReply, er
6986
return
7087
}
7188

89+
fmt.Println("prepare to run:", suite.Name)
7290
dataContext := map[string]interface{}{}
7391

7492
var result string

pkg/server/remote_server_test.go

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -46,6 +46,9 @@ func TestRemoteServer(t *testing.T) {
4646
Kind: "testcaseInSuite",
4747
Data: simpleSuite,
4848
CaseName: "fake",
49+
Env: map[string]string{
50+
"SERVER": "http://localhost:9090",
51+
},
4952
})
5053
assert.NotNil(t, err)
5154

0 commit comments

Comments
 (0)