当前位置: 首页 > 面试题库 >

Golang:测试和工作目录

郭琨
2023-03-14
问题内容

我在Go中为我的应用程序编写了一些单元测试。但是,测试失败,因为它找不到配置文件。通常,二进制文件会在路径下的工作目录中查找配置文件conf/*.conf

我认为浏览到包含该目录conf/go test在其中运行的目录可以解决该问题,但是它仍然报告文件系统找不到指定的路径。

我如何知道go test使用某个目录作为工作目录,以便可以实际执行测试?


问题答案:

您可能可以使用调用方来获取当前测试源文件的路径,如下所示:

package sample

import (
    "testing"
    "runtime"
    "fmt"
)

func TestGetFilename(t *testing.T) {
    _, filename, _, _ := runtime.Caller(0)
    t.Logf("Current test filename: %s", filename)
}


 类似资料:
  • 问题内容: 我想在Go中创建一个带有测试和示例的包作为子目录,以保持工作区的整洁。这有可能吗? 所有文档总是将测试代码与其他代码放在同一位置,这在某种程度上还是惯例上更好? 问题答案: 请注意,您 可以 “递归” 运行:您需要 列出要测试的所有软件包 。 如果您位于Go项目的根文件夹中,请键入: “ ”符号在“ 命令 ” 的“ 软件包列表说明 ” 部分中进行了描述: 如果导入路径包含一个或多个通配

  • 我是Micronaut和Gradle的新手,在尝试获得简单的控制器应用程序设置时遇到了一些问题。我可以运行该应用程序,但测试不起作用。我想这一定是由于我的gradle配置。 我的所有类都存在于同一个包中。 这是我的简单应用测试: 和我的简单应用程序: 我可以很好地运行应用程序。但当我尝试使用这些测试时,会出现以下错误: 我的控制器测试也有类似的错误 我的控制器测试类: 这里是错误 以下是我的相关G

  • 嗨,当我运行我的测试通过一个计划的java代码,并使用WebDriver的关闭()方法它是关闭各自的浏览器实例。但是,当我在testNG类中使用driver.close()时,在任何@后注释中,如 然后它不会关闭浏览器实例。请尝试以下两个代码段:TestNGSnippet: 简单片段: 它是一个bug在testNG。注意:driver.quit()正在工作,但我不能使用它,因为当我并行运行我的测试

  • 我有一个带有Java配置类的Spring(4.2.5)项目。这些在正常运行项目时起作用,但我无法使我的测试工作。在下面的测试中,为空。 如果添加注释,则会出现异常 其中和在和中定义,后者是基于活动配置文件选择的。 [编辑2] 经过更多的搜索,我发现了这个问题,并且在检查了我的依赖项之后,我发现我在maven依赖项下有Spring-Core-4.1.9,而且我没有在我的POM中包含一个依赖项。添加依

  • 我有一个Spring Boot应用程序,并使用进行测试。 我试图让我的数据库在每个测试中处于相同的状态。 我的测试类使用和进行注释。 我测试的服务也使用进行注释。 据我所知,在激活TransactionManager跟踪日志时,提交了Spring Boot应用程序事务,并按预期回滚了测试事务。 问题来自这样一个事实,即用我的设置创建 你知道我可以做什么来让测试中创建的事务在应用程序中是相同的吗?