1. 测试

用于测试代码库和生成测试数据的库。

  • 测试框架

    • apitest - 简单和可扩展的行为测试库,用于基于REST的服务或HTTP处理程序,支持模拟外部http调用和序列图的呈现。
    • assert - 与本地本机go测试一起使用的基本断言库,带有用于自定义断言的构建块。
    • badio - Go testing/iotest包的扩展。
    • baloo - 表达性和通用性的端到端HTTP API测试变得容易。
    • biff - 分叉测试框架,与BDD兼容。
    • charlatan - 生成用于测试的虚假接口实现的工具。
    • commander - 用于在Windows,Linux和osx上测试cli应用程序的工具。
    • cupaloy - 适用于您的测试框架的简单快照测试插件。
    • dbcleaner - 受database_cleanerRuby 启发,清理数据库以进行测试。
    • dsunit - SQL,NoSQL,结构化文件的数据存储区测试。
    • embedded-postgres - Postgres-作为另一个Go应用程序或测试的一部分,在Linux,OSX或Windows上本地运行真实的Postgres数据库。
    • endly - 声明式端到端功能测试。
    • flute - HTTP客户端测试框架。
    • frisby - REST API测试框架。
    • ginkgo - Go的BDD测试框架。
    • go-carpet - 用于在终端中查看测试覆盖率的工具。
    • go-cmp - 用于比较测试中Go值的软件包。
    • go-mutesting - Go源代码的变异测试。
    • go-testdeep - 极其灵活的golang深度比较,扩展了go测试包。
    • go-vcr - 记录并重放您的HTTP交互,以进行快速,确定性和准确的测试。
    • goblin - 摩卡(Mocha)像Go的测试框架。
    • gocheck - 比getest更高级的测试框架。
    • GoConvey - 具有Web UI和实时重载的BDD样式的框架。
    • gocrest - Go断言的可组合的类似于hamcrest的匹配器。
    • godog - Cucumber或Behat像Go的BDD框架。
    • gofight - Golang路由器框架的API处理程序测试。
    • gogiven - Go的类似YATSPEC的BDD测试框架。
    • gomatch - 创建用于针对模式测试JSON的库。
    • gomega - Rspec,例如匹配器/断言库。
    • GoSpec - 用于Go编程语言的BDD样式测试框架。
    • gospecify - 这提供了BDD语法来测试您的Go代码。使用过rspec之类的库的任何人都应该熟悉。
    • gosuite - testing利用Go1.7的子测试,使带有设置/拆卸功能的轻量级测试套件成为可能。
    • gotest.tools - 一组软件包的集合,以增强go测试软件包并支持常见模式。
    • Hamcrest - 用于声明式Matcher对象的流利框架,将其应用于输入值时,会产生自描述结果。
    • httpexpect - 简洁,声明性且易于使用的端到端HTTP和REST API测试。
    • jsonassert - 用于验证JSON有效负载已正确序列化的软件包。
    • restit - 一个微框架,可帮助编写RESTful API集成测试。
    • schema - 在请求和响应中使用JSON模式方便快捷则表达式匹配。
    • testcase - 行为驱动开发的惯用测试框架。
    • testfixtures - Rails的测试夹具,用于测试数据库应用程序。
    • Testify - 对标准go测试包的神圣扩展。
    • testmd - 将markdown代码片段转换为可测试的go代码。
    • testsql - 在测试之前从SQL文件生成测试数据,并在完成后将其清除。
    • trial - 快速简单的可扩展断言,无需引入太多样板。
    • Tt - 简单而丰富多彩的测试工具。
    • wstest - Websocket客户端,用于对websocket http.Handler进行单元测试。
  • Mock

    • counterfeiter -生成独立模拟对象的工具。
    • go-sqlmock - 模拟SQL驱动程序,用于测试数据库交互。
    • go-txdb - 基于单事务的数据库驱动程序,主要用于测试目的。
    • gock - 多种HTTP 模拟变得容易。
    • gomock - Go编程语言的模拟框架。
    • govcr - 用于Golang的HTTP模拟:记录和重放HTTP交互以进行脱机测试。
    • hoverfly - HTTP(S)代理,用于通过可扩展的中间件和易于使用的CLI记录和模拟REST / SOAP API。
    • httpmock - 轻松模拟来自外部资源的HTTP响应。
    • minimock - Go接口的模拟生成器。
    • mockhttp - Go http.ResponseWriter的模拟对象。
  • Fuzzing and delta-debugging/reducing/shrinking.

    • go-fuzz - 随机测试系统。
    • gofuzz - 用于填充带有随机值的go对象的库。
    • Tavor - 通用的模糊测试和增量调试框架。
  • Selenium and browser control tools.

    • cdp - Chrome调试协议的类型安全绑定,可与实现该协议的浏览器或其他调试目标一起使用。
    • chromedp - 一种驱动/测试Chrome,Safari,Edge,Android Webview和其他支持Chrome调试协议的浏览器的方法。
    • ggr - 轻量级服务器,将Selenium WebDriver请求路由和代理到多个Selenium集线器。
    • selenoid - 替代的Selenium集线器服务器,可在容器内启动浏览器。
  • Fail injection

    • failpoint - failpoint -的实现failpoints为Golang。