草庐IT

全局性

全部标签

unit-testing - 有没有一种简单的方法可以在测试期间全局清除 time.Now() ?

我们的部分代码是时间敏感的,我们需要能够保留一些东西,然后在30-60秒内释放它,我们可以执行time.Sleep(60*time.Second)我刚刚实现了时间接口(interface),在测试期间使用了时间接口(interface)的stub实现,类似于thisgolang-nutsdiscussion.但是,time.Now()在多个站点中被调用,这意味着我们需要传递一个变量来跟踪我们实际睡了多少时间。我想知道是否有另一种方法可以在全局范围内清除time.Now()。也许进行系统调用以更改系统时钟?也许我们可以编写自己的时间包,它基本上环绕时间包但允许我们更改它?我们目前的实现效

Golang 模板 - 使用模板变量作为范围循环内的全局变量

我会尽量让这件事变得简单。我在Golang中有两个变量被解析为模板文件。这是声明变量的Golang代码:for_,issue:=rangeissues{issueIDStr:=strconv.Itoa(*issue.ID)parse[*issue.ID]=issueIDStrparse[issueIDStr+"-label"]="blahblah"}然后在我的HTML文件中:{{range.issues}}{{index$.$ID"author"}}{{end}}运行此代码后,我收到错误:badcharacterU+0024'$'以及抛出的panic。目前我正在尝试的是完全不可能的,还

pointers - 如何跨包中的文件使用全局变量?

我有以下文件结构:模型/db.gotypeDBstruct{*sql.DB}vardb*DBfuncinit(){dbinfo:=fmt.Sprintf("user=%spassword=%sdbname=%ssslmode=disable",DB_USER,DB_PASSWORD,DB_NAME)db,err:=NewDB(dbinfo)checkErr(err)rows,err:=db.Query("SELECT*FROMprofile")checkErr(err)fmt.Println(rows)}funcNewDB(dataSourceNamestring)(*DB,error

go - 声明指向结构的全局指针

我想声明一个指向全局结构的指针,这样我就可以在我的包中的其他文件中访问这个指针。我该怎么做?详细信息:包Y有名为“Cluster”的结构和一些名为NewCluster等的函数。typeClusterstruct{}funcNewCluster(self*Node,credentialsCredentials)*Cluster{return&Cluster{}}现在,当我尝试如下访问上面的集群时,从包“X”开始,它运行良好集群:=Y.NewCluster(节点,凭据)现在,我想将这个“集群”声明为全局变量,以便我可以在我的“X”包的其他文件中访问它。所以,我试图通过多种方式声明它,但它不

go - tarantool 队列尝试索引全局 'queue'

我的行有错误:que:=queue.New(conn,"foobar"):错误评估:1:尝试索引全局“队列”(零值)(0x20)配置文件:(如果我删除box.once则存在错误管)如何更正配置中的初始用户和管道,而不会出现“用户已存在”错误?`box.cfg{listen=3303}localqueue=require('queue')queue.start()queue.create_tube('foobar','fifottl',{if_not_exists=true})box.once("init",function()box.schema.user.grant('guest',

go - gitlab-ci 中的全局 GOPATH

我们正在我们的gitlabci上构建几个GO项目,我们有以下困境。当使用globalGOPATH构建项目时(比如在本地机器上),构建花费的时间太长,因为在每次构建时都会获取所有依赖项。另一方面,当定义一个本地GOPATH并缓存由goget创建的文件夹时,我们得到了快速构建,但项目设置很笨拙,其中项目本身不在GOPATH等...如果有全局缓存就好了,但是gitlab-ci不允许这样:WARNING:/build/src/git.my.repo:notsupported:outsidebuilddirectory 最佳答案 在这一点上我

go - 使用包作为全局变量的存储

我正在学习golang,我的第一个任务是开始构建一个简单的网站。问题是我需要有一些可用的全局变量,我了解到使用上下文发送这些全局变量是不明智的,因为每个请求的上下文都应该不同。因此,我考虑过创建一个包,在main()中填充所需的变量。我在其他项目中没有看到这个解决方案,所以我想问这是不是错了?配置包的简单示例:packageconfigvarDB*sql.DB还有主要的:packagemainimport"project/config"funcmain(){config.DB,err=sql.Open("postgres",conn)iferr!=nil{panic(err)}}然后我

go - Gradle 上的全局变量声明

我有一个gradle任务如下。在开始构建之前设置GOPATH。当我运行第二个任务时,即runUnitTest并且未在该block内设置GOPATH,我看到此错误“未设置$GOPATH”。taskgoBuild(type:Exec){environment'GOPATH',projectDir.toString().split("/src")[0]commandLine"go","build","main.go"}taskrunUnitTest(type:Exec){dependsOngoBuildcommandLine"go","get","github.com/AlekSi/goco

amazon-web-services - 用于全局索引的 DynamoDB ConsistentRead

我有下一个表结构:IDstring`dynamodbav:"id,omitempty"`Typestring`dynamodbav:"type,omitempty"`Valuestring`dynamodbav:"value,omitempty"`Tokenstring`dynamodbav:"token,omitempty"`Statusint`dynamodbav:"status,omitempty"`ActionIDstring`dynamodbav:"action_id,omitempty"`CreatedAttime.Time`dynamodbav:"created_at,o

testing - 在涉及全局变量的不同包中同步测试的最佳方法是什么?

我正在做一个go项目,我的任务是为一个包编写一些测试。测试需要访问不同包中的全局变量。这个全局变量可能在不同包的测试中设置/访问。因为默认情况下,gotesting会针对不同的包并行运行。因此,设置/访问此变量可能会产生竞争条件。最简单的同步方法是创建一个跨越不同包的共享sync.Mutex。话虽如此,我试图将这个sync.Mutex放在声明全局变量的xxx.go的xxx_test.go中,不幸的是,由于作用域,另一个包无法访问这个Mutex局限性。最终,我发现我必须将这个sync.Mutex放到一个专门用于测试的实用程序包中,然后不同的包可以访问这个Mutex以实现该全局变量的同步目