草庐IT

power_unit

全部标签

unit-testing - Golang : tests and working directory

我正在为我的Go应用程序编写一些单元测试。然而,测试失败,因为它找不到配置文件。通常二进制文件会在conf/*.conf路径下的工作目录中查找配置文件。我认为浏览到有conf/的目录并在其中运行gotest可以解决它,但它仍然报告文件系统找不到路径指定。如何告诉gotest使用某个目录作为工作目录,以便实际执行测试? 最佳答案 您也许可以使用Caller来获取当前测试源文件的路径,如下所示:packagesampleimport("testing""runtime""fmt")funcTestGetFilename(t*testin

unit-testing - 如何在go(golang)中测试未导出的(私有(private))函数?

我对在go中为“未导出(私有(private))函数”创建单元测试很感兴趣。但是,基本上很难在测试包中创建单元测试,因为我必须将它们“公开”。最终,这违背了他们私密的全部意义。关键是这些辅助函数有助于模块化,现在它们是模块化的,如果能够为它们创建单元测试而不使除测试包之外的所有人都可以使用它们,那就太好了,它们不是应该访问的函数或由测试套件或实际包本身以外的任何其他人使用。有什么建议吗?是否可以仅导出到自己的包和1个额外的包或类似的东西? 最佳答案 在包中创建一个测试文件library_test.gopackagemypkgfunc

unit-testing - Go 中的模拟函数

我对依赖关系感到困惑。我希望能够用模拟函数调用替换一些函数调用。这是我的代码片段:funcget_page(urlstring)string{get_dl_slot(url)deferfree_dl_slot(url)resp,err:=http.Get(url)iferr!=nil{return""}deferresp.Body.Close()contents,err:=ioutil.ReadAll(resp.Body)iferr!=nil{return""}returnstring(contents)}funcdownloader(){dl_slots=make(chanbool,

unit-testing - 是否有一组 "Lorem ipsums"文件用于测试字符编码问题?

对于布局,我们有著名的“Loremipsum”文本来测试它的外观。我正在寻找的是一组包含用几种不同编码编码的文本的文件,我可以在我的JUnit测试中使用这些文件来测试一些在读取文本文件时处理字符编码的方法。例子:有一个ISO8859-1编码的测试文件和一个Windows-1252编码的测试文件。Windows-1252必须触发区域8016–9F16的差异。换言之,它必须至少包含该区域的一个字符,才能将其与ISO8859-1区分开来。也许最好的测试文件集是每个编码的测试文件包含一次它的所有字符。但也许我不知道……我们都喜欢这种编码的东西,对吧?:-)是否有这样一套针对字符编码问题的测试文

unit-testing - 如何从 Go 测试覆盖中忽略生成的文件

我的包中有一个带有DONOTEDIT的生成文件在上面。我正在使用gotest-coverprofile=cover.out为我的包运行测试.这将创建覆盖配置文件并显示总覆盖百分比。但它还包括在计算覆盖率时生成的文件。有没有办法在覆盖率计算中忽略生成的文件? 最佳答案 您可以从封面配置文件中剥离生成的代码:gotest.-coverprofilecover.out.tmpcatcover.out.tmp|grep-v"_generated.go">cover.outtoolcover-funccover.out根据使用的工具,这可以在

unit-testing - 每晚构建与持续集成 : Long-Running Automated Tests

我们有一个大型自动化集成测试套件的“问题”。虽然我们的构建时间是合理的(虽然在我们的构建运行中测试这么大的功能block很棒,但这显然是实现CI的障碍,我发现这对于将源代码树保持在“始终可构建”状态非常有帮助。我查看过thisone等讨论主题,其中详细说明了区别。这引出了几个问题:CI是否规定或推荐单元与集成测试自动化?我过去曾听说过Unit-only,但在快速搜索中没有找到任何此类陈述(或理由)。对于组合构建+自动化测试时间/比率来为团队提供有效CI的“最佳实践”是什么?我的直觉告诉我,最坏的情况应该是从长期运行的夜间构建+集成测试到CI的最佳前进方式是什么?我正在考虑一个仅包含一些

unit-testing - 在 Visual Studio 中进行单元测试时会重建不必要的项目

我知道this问题(和答案),但尽管尝试了所有建议的选项,我仍然被卡住了。我有一个包含多个项目的解决方案,但对于这个特殊情况,假设我有我的ExampleProjectA和相应的单元测试项目ExampleProjectATest.第一个添加为对测试项目的引用-不是通过VisualStudio的"ProjectReferences"但是作为DLL的链接(类似于"..\Path\$(Config)\ExampleProjectA.dll")-这是由于我们公司构建服务器的要求,但是当我们还有"ProjectReferences"时,问题也存在。.构建然后运行单个单元测试工作正常在单元测试中只更

unit-testing - 没有找到测试。确保已安装的测试发现器和执行器、平台和框架版本设置正确,然后重试

我正在将我们现有的解决方案升级到.Net4.6.1,并且无法在服务器构建期间运行我们的单元测试。它们在本地按预期运行,并将框架版本翻转回.Net4.5.1使它们再次在服务器上运行。我收到以下错误:Notestfound.Makesurethatinstalledtestdiscoverers&executors,platform&frameworkversionsettingsareappropriateandtryagain.我在更简单的设置中重现了该问题:使用单个C#单元测试项目和两个测试(一个失败,一个通过)的解决方案。XAML构建定义使用默认模板(TfvcTemplate.12

ruby - 如何使用 Ruby 的 Test::Unit 只测试一个方法?

假设我有一个这样的测试:classMyUnitTest我的测试用例是破坏性的,我需要在测试之间重新生成输入。因此,一次只运行一个测试用例会很有用。目前,我的方法是评论我不想执行的测试,但肯定有更好的方法吗?那么,例如,当我执行测试时,如何只运行test_first? 最佳答案 使用--namePATTERN参数来过滤出您要运行的测试名称。D:\Projects>rubytest.rbLoadedsuitetestStarted...Finishedin0.000000seconds.3tests,0assertions,0failu

ruby - 有ruby Unit::Test 说出测试结果

我一直在使用内置的OSX“say”命令来表示长时间运行的测试结束。简单方便。我想让它说出结果的最后一行,上面写着“6次测试,18次断言,0次失败,0次错误”,但仍保持持续输出。任何想法如何做到这一点?我试过:rubyoverlay_test.rb|tail-n1|say但这不会在测试发生时输出测试结果。让它只说“0次失败,0次错误”这一行的最后两部分的加分项。 最佳答案 您可以使用tee将输出定向到多个文件/进程(这里,say和STDOUT):rubyoverlay_test.rb|tail-n1|tee>(say)作为奖励,使用s