go test main包报错

这篇具有很好参考价值的文章主要介绍了go test main包报错。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

前言

先提出问题, 再说明原因. 有如下一段代码:

go test main包报错

当执行go test测试时, 会报如下错误:

main.test
/var/folders/55/47pl3jxx6rg7m0r6xvn4f7wr0000gn/T/go-build2769402238/b001/_testmain.go:13:8: could not import main (cannot import “main”)
FAIL main [build failed]

什么意思? 导入main包失败? Why?

经过我的测试, 有如下方法解决这个问题:

  1. 换个包名, 只要包名不是main就没问题 (要带着go.modmodule 一起改, 否则路径找不到)
  2. demo.go文件放到子目录下. 只要文件不在根目录就没问题

综上, 只有对根目录的main包方法执行test时会报错.

探究

为什么会发生这样的事情呢? 为了了解原因, 执行go test -work命令可以在执行后保留生成的_testmain.go文件.

这个生成的测试文件开头几行是这样的:

// Code generated by 'go test'. DO NOT EDIT.

package main

import (
	"os"
	"testing"
	"testing/internal/testdeps"
	_test "main"
)

而根据报错信息, 是因为_test "main"这行导致的报错. 这又是什么原因呢?

相信聪明的你一眼就看出原因了, 这个生成的test文件, 包名就是main (因为Go的可执行文件必须是main包), 而在main包中引入main包, 自然是不行的, 自己引入自己怎么行呢.

这也就解释了上面在测试时的解决方案为什么可行:

  1. 换包名: import _test "demo"
  2. 换路径: import _test "main/demo"

只要换个名字或用路径将2个包进行区分, 即可正确导入. (主要还是main这个包作为运行包比较特殊啦)


最后, 这个小问题写出来其实没多少东西, 但我在排查的时候还是稍微费了一些功夫的. 简单看看就好文章来源地址https://www.toymoban.com/news/detail-414970.html

到了这里,关于go test main包报错的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • java中main方法和@Test注解的区别

    Java的 main 方法和 @Test 注解在用途和功能上有很大的区别。 main 方法是Java应用程序的入口点。当你运行一个Java程序时,JVM会首先查找具有 public static void main(String[] args) 签名的类,并从这个方法开始执行程序。 main 方法通常用于控制程序的启动、执行和终止。 @Test 注解是JUn

    2024年02月05日
    浏览(35)
  • idea运行main方法或Test避免编译整个应用的方法

    光标点到main函数里,右键-Modify Run COnfigurations-Modify options 或者单独在每个test里 右键-Modify Run COnfigurations-移除build File-New Project Settings-Run/Debug Configuration Tmepliates for New Project Test模块不build: 标注 1:Build Project,编译项目; 标注 2:Build Module,编译模块; 标注 3:Recomplie,重新编

    2024年02月09日
    浏览(39)
  • Flink UI部署jar包报错

    错误描述: 通过Flink的UI中的Submit New Job菜单添加jar包的时候提示报错。报错信息的是“The LocalStreamEnvironment cannot be used when submitting a program through a client, or running in a TestEnvironment context”,最关键的是“LocalStreamEnvironment”。 我的Flink服务是单机版启动。 问题原因就是以

    2023年04月24日
    浏览(56)
  • Python | Conda安装包报错:PackagesNotFoundError

    Conda在下载安装包时报错: 有如下两种解决方法:         在命令行运行下方指令,然后重新安装。         点击命令行提示的连接,即官网: https://anaconda.org ,在页面搜索需要的包,复制下方任意一条指令在命令行运行即可。         进入主页搜索:         复制官网

    2024年04月14日
    浏览(121)
  • vue-element-admin - 超详细克隆并运行项目教程,完美解决 git clone 克隆项目失败、npm install 装包报错失败、项目运行后打开是英文的汉化等问题(新手小白一看就懂)

    网上的教程都太乱了,大部分最终都无法成功克隆项目并运行起来。 本文站在 新手小白的角度,从 0-1 克隆项目(完美解决了克隆失败的问题)、npm install 装包并配置运行起来,以及界面是英文的汉化等一系列的问题, 您可以按照本文的教程,轻松完成 vue-element-admin 该框架

    2024年02月09日
    浏览(71)
  • burp 抓https包报错正确解决姿势

    这里可以排除第2,3种可能 1 .HTTPS 加密:百度使用 HTTPS 进行数据传输,这意味着通信过程中的数据是加密的。如果 burp 配置不正确,无法解密 HTTPS 流量,就无法抓取到百度的包。解决方法是在 burp 中设置 SSL/TLS 证书,以便 burp 可以解密 HTTPS 流量。可以参考 burp 的官方文档或

    2024年02月15日
    浏览(38)
  • python安装cv2包报错解决方法

    1.在pycharm中安装cv2包报错 ERROR: Could not find a version that satisfies the requirement cv2 (from versions: none) ERROR: No matching distribution found for cv2 WARNING: You are using pip version 21.3.1; however, version 22.0.3 is available. You should consider upgrading via the \\\'C:Program FilesPython310python.exe -m pip install --upgrade pip\\\' com

    2024年02月06日
    浏览(66)
  • npm 安装私库包报错:请求地址错误 | 请求包错误

    在一次创建完 npm 私库之后,上传 npm 包没问题,但是下载一直出错。 老是请求一个旧的地址下载某个库,而那个地址已经停用了,因此请求很多次之后,npm 提示安装失败。 这个问题困扰了几乎一天的时间,网络搜索几乎也找不到合适的解决办法。 清缓存、卸载 node 重装都

    2024年02月12日
    浏览(45)
  • python安装wordcloud包报错:No module named ‘wordcloud‘

    直接在cmd使用pip install wordcloud进行安装后,在jupyter notebook中导入wordcloud包会报错 发现是因为没有安装在anaconda的路径里 解决方法:打开anaconda prompt进行pip install wordcloud,安装完成后可以在jupyter环境中成功导入 去年这时候安过一次wordcloud包,当时好像也有这个问题,没有及时

    2024年02月11日
    浏览(49)
  • 接入穿山甲SDK时,Unity打Android包报错日志

    一、接入SDK过程: 1、新建一个空工程,设置包名为:com.ceshi.hewen,正常打包无报错,导出unitypackage。 2、将unitypackage导入包名为:com.DefaultCompany.Myproject的另一个工程,打包报错。 二、报错如下: 三、报错原因: 两个工程 Enable Android Auto-resolution 设置不一致。SDK工程设置为

    2024年02月12日
    浏览(39)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包