path_test.go 1.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051
  1. /*
  2. * @desc:xxxx功能描述
  3. * @company:云南奇讯科技有限公司
  4. * @Author: yixiaohu<yxh669@qq.com>
  5. * @Date: 2022/12/8 17:48
  6. */
  7. package test
  8. import (
  9. "fmt"
  10. "github.com/gogf/gf/v2/os/gfile"
  11. "github.com/gogf/gf/v2/text/gstr"
  12. "strings"
  13. "testing"
  14. )
  15. func TestContainer(t *testing.T) {
  16. //t.Run("testEncryptPassword", testEncryptPassword)
  17. //t.Run("testIpToAddr", testIpToAddr)
  18. //t.Run("testDb", testDb)
  19. t.Run("ScanPath", scanPath)
  20. }
  21. func scanPath(t *testing.T) {
  22. var (
  23. packages []string
  24. err error
  25. packageNames []string
  26. )
  27. //logic路径
  28. path := strings.Join([]string{"D:/goProject/p2022/gfast-v3/internal/app/demo/logic"}, "")
  29. //获取该路径下所有需要加载的包
  30. packages, err = gfile.ScanDirFunc(path, "*", false, func(p string) string {
  31. if gfile.IsDir(p) {
  32. return p
  33. }
  34. return ""
  35. })
  36. if err != nil {
  37. panic(err)
  38. }
  39. packageNames = make([]string, len(packages))
  40. for k, v := range packages {
  41. fmt.Println("111111", v)
  42. v = gstr.Replace(v, "\\", "/")
  43. fmt.Println("2222222", v)
  44. packageNames[k] = gstr.SubStr(v, gstr.PosR(v, "/")+1)
  45. }
  46. fmt.Println("dddd", packageNames)
  47. }