Articles of unit testing

unit testing和启动MongoDb服务器

我正在运行一些unit testing,将文档保存到MongoDb数据库中。 为了使这个unit testing成功,必须启动MongoDb服务器。 我通过使用Process.Start(“mongod.exe”)来执行此操作。 它的工作,但有时需要时间来启动,甚至在开始之前unit testing试图运行和FAILS。 unit testing失败,并抱怨说mongodb服务器没有运行。 在这种情况下该怎么办?

来自PHPUnit的奇怪输出

我已经通过PEAR安装了PHPUnit,并且还安装了WordPress插件testing( https://github.com/tierra/wordpress-plugin-tests )来testing我正在开发的WordPress插件。 在正常运行testing时,我得到以下输出: Running as single site… To run multisite, use -c multisite.xml Not running ajax tests… To execute these, use –group ajax. PHPUnit 3.7.21 by Sebastian Bergmann. Configuration read from E:\LocalWebServer\dch\c\my-wp-installtion.dch\wordpress-test\wordpress\wp-content\plugins\myplugin\phpunit.xml [41;37mF[0m.[36;1mS[0m Time : 1 second, Memory: 30.50Mb There was 1 failure: 1) CDOAjax_Tests::test_tests Failed asserting that false is true. E:\LocalWebServer\dch\c\my-wp-installtion.dch\wordpress-test\wordpress\wp-content\plugins\myplugin\Tests\test_CDOAjax_tests.php:7 [37;41m[2KFAILURES! [0m[37;41m[2KTests: […]

有没有办法钩住或拦截CoGetClassObject和/或CoCreateInstance调用?

我想拦截COM CoCreateInstanceEx和/或CoGetClassObject函数,以在unit testing中用testing填充replace类。 这只会是一个单一的CLSID; 其他人都可以不变。 有没有办法做到这一点,没有可怕的,邪恶的黑客?

在Windows上用于C开发的unit testing框架?

在Windows XP上,使用TDM的GCC / MinGW32进行基本开发,即使用gdb的gcc 4.4.x。 哪个unit testing框架用于testing驱动开发? 显然检查的unit testing还没有在Windows上工作。 unit testing框架的C和unit testingC代码的问题是类似的,但不是专门在Windows上使用gcc 4.4.x。

在Visual Studio中使用受限的CPU / RAMtesting/运行C#应用程序?

我有我的C#应用​​程序完全开发和有针对性的运行在CPU和RAM受限制的设备。 有什么办法可以在我的开发电脑上运行/testing这个应用程序吗?通过提供多lessCPU,RAM等参数来使用?

unit testing内核驱动

我正在寻找Windows内核环境的testing框架。 到目前为止,我find了cfix 。 有没有人试过吗? 有替代品吗?

是否有UNIX的“Windowsbatch file”模拟器/解释器?

我可以在UNIX上运行batch file吗? (Linux / Mac OS X) 我正在寻找解释器来在UNIX上运行Windowsbatch file,如bash脚本的'bash',csh脚本的'csh',以及windowsbatch file的'XXX'。 我正在开发一个Java应用程序。 开发环境在Mac OS X上 但目标(主执行)环境是在Windows上。 该应用程序使用Windowsbatch file和可执行文件。 它会生成* .bat来运行存根程序(* .exe)。 所以我想编写unit testing并准备存根程序(* .exe作为bash脚本), 并希望在Mac OS X上运行它 – 而不是Windows。 但是,这并不意味着我要执行(模拟)Windows二进制文件(* .exe)…我只想启动* .bat,并让它调用sh / perl / ruby​​所做的testing存根* .exe。 …有任何想法吗? (相关) 如何从UNIX-AIX执行Windowsbatch file?

Raketesting运行非常缓慢

运行一些testing后,我确信我的设置(windows,rubymine和最新的ruby版本)必须有错误。 我现在的时代是: Finished tests in 14.289817s, 0.0700 tests/s, 0.3499 assertions/s. 1 tests, 5 assertions, 0 failures, 0 errors, 0 skips Process finished with exit code 0 用5非常简单的testing(只是检查是否validation空字段的作品)。 这5个unit testing的总时间是160秒,超过2分钟。 我能做些什么来提高这个速度? 这里是testing: require 'test_helper' class ItemTest < ActiveSupport::TestCase test 'item attributes must not be empty' do item = Item.new assert item.invalid? assert item.errors[:name].any? assert item.errors[:description].any? assert […]

Gtest:未定义的参考

我试图使用GoogleTest来testing一个简单的函数,但是当我运行在我的生成文件夹中,编译器会抛出Undefined Reference错误消息在我身上。 我已经引用了gtest头文件,所以我不知道什么是错的。 有任何想法吗? 我对unix和unit testing的整个主题都很陌生,所以我很可能会错过简单的东西。 提前致谢! 错误消息: CMakeFiles/Proj2.dir/main.cpp.o: In function `main': main.cpp:(.text+0x1e): undefined reference to `testing::InitGoogleTest(int*, char**)' main.cpp:(.text+0x23): undefined reference to `testing::UnitTest::GetInstance()' main.cpp:(.text+0x2b): undefined reference to `testing::UnitTest::Run()' collect2: error: ld returned 1 exit status main.cpp中 #include "gtest/gtest.h" int main(int argc, char **argv) { ::testing::InitGoogleTest(&argc, argv); return RUN_ALL_TESTS(); } TEST.CPP #include "gtest/gtest.h" #include "Testable.h" TEST(GetTwoTest, […]

你如何将unit testing引入一个大的,传统的(C / C ++)代码库?

我们有一个用C语言编写的大型多平台应用程序(只有less量的C ++)。多年来,随着C / C ++大型应用程序中许多function的不断发展, #ifdef地狱 大的文件,很难隔离可testing的代码 function太复杂,不易testing 由于这个代码是针对embedded式设备的,所以在实际的目标上运行它会花费很多的开销。 所以我们希望在本地系统上进行更多快速周期的开发和testing。 但是我们希望避免“复制/粘贴到您的系统上的.c文件,修复错误,复制/粘贴”的经典策略。 如果开发人员要麻烦去做,我们希望能够在以后重新创build相同的testing,并以自动化的方式运行。 这是我们的问题:为了重构代码,使其更加模块化,我们需要它更加可testing。 但是为了引入自动化的unit testing,我们需要它更加模块化。 一个问题是,由于我们的文件太大了,我们可能会在一个文件里面有一个函数,在同一个文件中调用一个函数,我们需要把这个文件作为一个unit testing。 看起来这样做会less一些问题,因为我们的代码变得更加模块化了,但是还有很长的一段路要走。 我们想要做的一件事就是用注释标记“已知是可testing的”源代码。 然后,我们可以为可testing代码编写一个脚本扫描源文件,将其编译为单独的文件,并将其与unit testing链接。 我们可以在修复缺陷并添加更多function时,慢慢地引入unit testing。 然而,有人担心维护这个scheme(以及所有必需的存根函数)会变得太麻烦,开发人员将停止维护unit testing。 所以另一种方法是使用一个工具自动生成所有代码的存根,并将其与该文件链接。 (我们发现这样做的唯一工具是一个昂贵的商业产品)但是这种方法似乎要求我们所有的代码在开始前都要更模块化,因为只有外部调用才能被删除。 就个人而言,我宁愿让开发人员考虑他们的外部依赖关系,聪明地写出他们自己的存根。 但是,这可能是压倒一切可能为一个可怕的杂草丛生,10,000行文件的所有依赖项。 要说服开发人员需要为所有的外部依赖维护存根可能是困难的,但这是否正确? (另一个我听说的论点是,一个子系统的维护者应该为他们的子系统维护存根,但是我想知道是否迫使开发者写他们自己的存根会导致更好的unit testing?) #ifdefs当然会为这个问题增加另一个维度。 我们已经看过几个基于C / C ++的unit testing框架,并且有很多选项看起来不错。 但是我们还没有find任何东西来缓解从“没有unit testing代码的毛球”到“unit testing代码”的过渡。 所以这里是我的问题给任何其他谁已经通过这个问题: 什么是一个好的起点? 我们正朝着正确的方向走,还是我们错过了一些明显的东西? 什么工具可能有助于转型? (最好是免费/开源,因为我们现在的预算大致为零) 请注意,我们的构build环境是基于Linux / UNIX的,所以我们不能使用任何仅限于Windows的工具。