草庐IT

BAR_INGRESO_TEST

全部标签

testing - 在 go test 中处理命令行参数

有没有办法在go"tests"中获取命令行参数,当你调用gotest显然你的main没有运行,所以有没有办法处理命令行参数,一种方法是使用flags包并检查每个测试或正在测试的函数中的命令行参数,但这并不理想,因为您需要大量执行此操作的地方,不像你在运行应用程序时在main中的方式。有人可能会认为这样做是错误的,并且违反了单元测试的纯洁性:并非所有测试都是单元测试不依赖“ENV”变量并在命令行中实际将这些东西作为参数传递是非常实用的,作为记录,我最终将init()函数放在我的一个_test文件中,并设置在调用main时通过标志设置的变量这边走。 最佳答案

unit-testing - 我怎么知道我在 "go test"内运行

当我运行“gotest”时,我想使用不同的配置文件。我如何在我的代码中知道我是在测试上下文还是正常上下文中运行?是否需要检查某种环境变量? 最佳答案 测试包在加载时会修改全局环境:它注册了很多命令行标志。因此,我们可以检查这些标志是否已注册:funcinit(){ifflag.Lookup("test.v")==nil{fmt.Println("normalrun")}else{fmt.Println("runundergotest")}} 关于unit-testing-我怎么知道我在"

testing - 如何在 "Go test"上设置 go timeout 标志

gotest-timeout99999抛出这个无意义的错误invalidvalue"99999"forflag-test.timeout:time:missingunitinduration99999这是一个错误吗?我在用着去版本go1.3“帮助”cli也无用。它说-test.timeout=0:如果是肯定的,则为所有测试设置一个聚合时间限制。但是如果你去test-test.timeout99999你会得到同样的错误-test.timeout=0:ifpositive,setsanaggregatetimelimitforalltests 最佳答案

testing - 使用 go test 跳过一些测试

是否可以使用gotest跳过/排除某些测试?我有相当多的集成类型测试,它们调用作为标准go测试编写的rest服务,并使用gotest运行。开发新功能时,有时跳过一些测试很有用,例如,如果新功能尚未部署在测试服务器上并且我仍想运行所有现有测试(那些新测试除外)新功能)。我知道-run,但我不想指定我想要运行的所有测试,那将是一个很长的列表。同时,我还无法编写排除测试的正则表达式。另一种选择是不提交不在同一分支中运行的测试,但如果我可以指定要排除的内容会更容易。 最佳答案 Testingpackage有SkipNow()和Skip()方

testing - 如何 `go test` 我项目中的所有测试?

gotest命令只覆盖一个目录中的*_test.go文件。我想gotest整个项目,这意味着测试应该覆盖目录./中的所有*_test.go文件以及目录./.下的每个子树目录执行此操作的命令是什么? 最佳答案 这应该运行当前目录及其所有子目录中的所有测试:$gotest./...这应该运行给定特定目录的所有测试:$gotest./tests/..../unit-tests/..../my-packages/...这应该运行所有带有前缀为foo/:的导入路径的测试$gotestfoo/...这应该运行所有以foo为前缀的导入路径:$go

java - JUnit 混淆 : use 'extends TestCase' or '@Test' ?

我发现JUnit的正确使用(或至少是文档)非常令人困惑。这个问题既可以作为future的引用,也可以作为一个真实的问题。如果我理解正确的话,创建和运行JUnit测试有两种主要方法:方法A(JUnit3风格):创建一个扩展TestCase的类,并使用单词test开始测试方法。当将该类作为JUnit测试运行时(在Eclipse中),所有以单词test开头的方法都会自动运行。importjunit.framework.TestCase;publicclassDummyTestAextendsTestCase{publicvoidtestSum(){inta=5;intb=10;intresu

java - 在 Junit Test 中覆盖默认 Spring-Boot application.properties 设置

我有一个Spring-Boot应用程序,其中默认属性设置在类路径(src/main/resources/application.properties)中的application.properties文件中。我想用test.properties文件(src/test/resources/test.properties)中声明的属性覆盖我的JUnit测试中的一些默认设置我通常有一个专门的配置类用于我的Junit测试,例如packagefoo.bar.test;importorg.springframework.boot.autoconfigure.EnableAutoConfigurati

c++ - 什么是 `int foo::*bar::*` ?

C++的一个很酷的地方是它允许您创建指向成员类型的变量。最常见的用例似乎是获取指向方法的指针:structfoo{intx(){return5;}};int(foo::*ptr)()=&foo::x;foomyFoo;cout不过,我搞砸了,我意识到它们也可以指向成员变量:structfoo{inty;};intfoo::*ptr=&foo::y;foomyFoo;myFoo.*ptr=5;cout这真是太棒了。这让我做了一个进一步的实验:如果你能得到一个指向结构子成员的指针呢?structfoo{inty;};structbar{fooaFoo;};intbar::*foo::*pt

iOS8 : Blue bar "is Using Your Location" appears shortly after exiting app

我想在后台跟踪时获得蓝条,但不是。我的应用在事件时始终使用定位服务,因此在iOS8中,我在CLLocationManager上使用requestWhenInUseAuthorization。通常,当您关闭应用程序时,应用程序会停止跟踪您的位置,但用户可以选择让应用程序在后台跟踪他的位置的选项。因此,我在Info.plist文件中有UIBackgroundModes的location选项。这非常有效:当切换到后台时,应用程序会不断获取位置更新,并且会出现一个蓝条,提醒应用程序正在使用位置服务。一切都很完美。但问题是,当用户没有选择在后台跟踪时,蓝条也会出现。在这种情况下,我只需在进入后台

php - 为什么 1234 == '1234 test' 评估为真?

这个问题已经存在:关闭10年前。PossibleDuplicate:php==vs===operator对于我确定的人来说,这是一个简单的答案。有人能解释一下为什么这个表达式的计算结果为真吗?(1234=='1234test') 最佳答案 因为您使用==(相似性)运算符,而PHP将字符串强制转换为int。要解决它,请使用===(相等)运算符,它不仅检查值是否相同,而且检查数据类型是否相同,因此不会考虑“123”字符串和123int相等。 关于php-为什么1234=='1234test'