首页 > 其他分享 >golang在编译测试时使用ldflags动态设置包中变量的值

golang在编译测试时使用ldflags动态设置包中变量的值

时间:2023-05-11 09:25:38浏览次数:35  
标签:包中 gotest golang test version TestBuild ldflags go

Example:

 

mkdir $GOPATH/src/gotest/

touch go_test.go

 

package gotest

import "testing"

var time string
var version string

func TestBuild(t *testing.T) {
  t.Log(time)
  t.Log(version)
}

 

ReadMe.txt

go test  -ldflags="-X 'gotest.time=`date`' -X gotest.version=1.0.1" gotest -v

GO111MODULE=off go test -ldflags="-X 'gotest.time=`date`' -X gotest.version=1.0.1" gotest -v
=== RUN TestBuild
TestBuild: go_test.go:9: 2020年 8月 9日 星期日 18时57分49秒 CST
TestBuild: go_test.go:10: 1.0.1
--- PASS: TestBuild (0.00s)
PASS
ok gotest 0.009s

 

 

标签:包中,gotest,golang,test,version,TestBuild,ldflags,go
From: https://www.cnblogs.com/gongxianjin/p/17389982.html

相关文章

  • Golang刷题日志--岛屿问题
    1.给你一个由'1'(陆地)和'0'(水)组成的的二维网格,请你计算网格中岛屿的数量。岛屿总是被水包围,并且每座岛屿只能由水平方向和/或竖直方向上相邻的陆地连接形成。此外,你可以假设该网格的四条边均被水包围。示例代码:import"fmt"funcnumIsIands(grid[][]byte)int{ //记录岛......
  • context sample in golang
    packagemainimport("context""fmt""sync""time")funcroutine(idint,ctxcontext.Context,msgchanint,wg*sync.WaitGroup){deferwg.Done()fmt.Println("routine",id)......
  • golang获得基础硬件信息
    packageutilsimport("runtime""time""github.com/shirou/gopsutil/v3/cpu""github.com/shirou/gopsutil/v3/disk""github.com/shirou/gopsutil/v3/mem")const(B=1KB=1024*BMB=1024*......
  • golang的zap日志切割
    packageinternalimport("github.com/flipped-aurora/gin-vue-admin/server/global"rotatelogs"github.com/lestrrat-go/file-rotatelogs""go.uber.org/zap/zapcore""os""path""time")varF......
  • golang中xorm自动维护表结构自动导入数据的实现
    Xorm简介Go标准库提供的数据库接口database/sql比较底层,使用它来操作数据库非常繁琐,而且容易出错。因而社区开源了不少第三方库,有各式各样的ORM(ObjectRelationalMapping,对象关系映射库),如gorm和xorm。其中xorm是一个简单但强大的ORM库,使用它可以大大简化我们的数据库操作,笔......
  • Golang GMP原理(2)
    GMP调度场景场景1P拥有G1,M1获取P后开始运行G1,G1使用gofunc创建G2,为了局部性G2优先加入到P1的本地队列场景2G1运行完成后(函数:goexit),M上运行的goroutine切换为G0,G0负责调度时协程的切换(函数:schedule)。从P的本地队列取G2,从G0切换到G2,并开始运行G2(函数:execute)。实现了线程......
  • Golang MySQL 操作
    1.  创建go_db目录      mkdirgo_db2. root@VirtualBox:/mnt/share/goframe/go_db#gomodinitgo_dbgo:creatingnewgo.mod:modulego_dbroot@VirtualBox:/mnt/share/goframe/go_db#goget-ugithub.com/go-sql-driver/mysqlgo:addedgithub.com/go-......
  • golang map key struct hash policy
     Theeasiestandmostflexiblewayistousea struct asthekeytype,includingallthedatayouwanttobepartofthekey,soinyourcase:typeKeystruct{X,Yint}Andthat'sall.Usingit:m:=map[Key]int{}m[Key{2,2}]=4m[Key{2......
  • 学习Golang时遇到的似懂非懂的概念
    背景......
  • Go语言(Golang)编写最简单的命令行工具
    最简单的命令行工具项目预览>echoabc123--name=nickabc123--name=nick课程概述如何制作命令行应用如何使用os.Args获得命令行参数前提条件懂得Go语言基本语法知识点OS包提供了用于处理操作系统相关内容的函数/值独立于平台的方式os.Args变量获......