go-micro.dev/v5@v5.12.0/web/web_test.go (about)

     1  package web_test
     2  
     3  import (
     4  	"context"
     5  	"sync"
     6  	"testing"
     7  	"time"
     8  
     9  	"github.com/urfave/cli/v2"
    10  	"go-micro.dev/v5"
    11  	"go-micro.dev/v5/logger"
    12  	"go-micro.dev/v5/web"
    13  )
    14  
    15  func TestWeb(t *testing.T) {
    16  	for i := 0; i < 10; i++ {
    17  		testFunc()
    18  	}
    19  }
    20  
    21  func testFunc() {
    22  	ctx, cancel := context.WithTimeout(context.Background(), time.Millisecond*250)
    23  	defer cancel()
    24  
    25  	service := micro.NewService(
    26  		micro.Name("test"),
    27  		micro.Context(ctx),
    28  		micro.HandleSignal(false),
    29  		micro.Flags(
    30  			&cli.StringFlag{
    31  				Name: "test.timeout",
    32  			},
    33  			&cli.BoolFlag{
    34  				Name: "test.v",
    35  			},
    36  			&cli.StringFlag{
    37  				Name: "test.run",
    38  			},
    39  			&cli.StringFlag{
    40  				Name: "test.testlogfile",
    41  			},
    42  		),
    43  	)
    44  	w := web.NewService(
    45  		web.MicroService(service),
    46  		web.Context(ctx),
    47  		web.HandleSignal(false),
    48  	)
    49  	// s.Init()
    50  	// w.Init()
    51  
    52  	var wg sync.WaitGroup
    53  	wg.Add(2)
    54  	go func() {
    55  		defer wg.Done()
    56  		err := service.Run()
    57  		if err != nil {
    58  			logger.Logf(logger.ErrorLevel, "micro run error: %v", err)
    59  		}
    60  	}()
    61  	go func() {
    62  		defer wg.Done()
    63  		err := w.Run()
    64  		if err != nil {
    65  			logger.Logf(logger.ErrorLevel, "web run error: %v", err)
    66  		}
    67  	}()
    68  
    69  	wg.Wait()
    70  }