Articles of unit testing

是否有可能在不运行整个Web服务器的情况下运行(并检查)Nginx重写规则?

我想尽可能地接近“unit testing”的Nginx重写规则。 一个人能靠得多近呢? 有没有办法运行请求重写模块,而无需运行整个Web服务器? 我可以在运行Ruby或Python的过程中embeddedNginx服务器吗?如果需要,可以embeddedJava吗? 你能想到什么技巧?

基于Bash的热重载实现

tl; dr版本问题:如何使bash脚本/命令监听文件的更改,然后输出特定Bash命令的结果? 长版 Real Scenario:我正在重构一个Perl模块( my_module.pm ),我有一个与该模块相关的testing文件( my_module.t )。 我想将控制台放在一个屏幕上,每当我保存pm文件(在另一个屏幕上使用编辑器),控制台将运行prove -v my_module.t 。 背景:我有当前目录中的所有权限,如果需要,我可以升级到sudo 。 我不介意如果实现类似setInterval因为它仅用于开发目的。 只要我有一种方法clearInterval和脚本不产生永无止境的输出,当文件没有改变,那么它是好的:) 示例scheme:假设bash脚本命名为hot并且每当给定的文件发生更改时,都会运行ls -l source.txt 。 所以当我运行hot source.txt ,脚本可能会或可能不会运行ls ….一次。 然后,当我修改source.txt ,运行hot的控制台将再次运行ls ,我应该看到source.txt的新文件大小(以及其他信息)。 如果我运行hot something.txt ,当source.txt被修改时,它不应该运行ls 。 即使source.txt没有被修改,脚本也会在我修改something.txt时触发ls 。 我想这是可能的一个while循环,但我很难跟踪文件的变化(最好跟踪一个间隔,以减less资源)。 任何帮助将不胜感激!

如何在Linux中运行visual studio 2015托pipec ++testing函数?

我已经pipe理VisualStudio 2015 C ++程序的testing项目, 它工作正常,但我想在Linux环境下运行相同的testing用例, 对于正常的c + +程序我已经make文件,我不知道如何在Linux中运行Visual Studio 2015托pipec + +testing项目,这里是我的示例程序.. sample.h #ifndef GUARD_SAMPLE #define GUARD_SAMPLE void method1(); void method2(); void method3(); 而我的c ++程序是sample.cpp #include "sample.h" void method1() { int a,b=20,c=30; a=b+c; cout<<"sum is"<<a; } void method2() { int a,b=20,c=30; a=bc; cout<<"sub is"<<a; } void method3() { int a,b=20,c=30; a=b*c; cout<<"mul is"<<a; } 而我的testing程序是sample_Test.cpp […]

如何testing内核来识别内核中可能导致内核恐慌的问题

我有一个embedded式Linux设备。 我试图想出一些testing用例,这些testing用例可以在内核中运行各种子系统,代码path和系统调用,以识别导致内核恐慌的内核中的问题/松散结束。 有人可以提出一些testing想法这种testing? 否则,有人可以提出一些想法来testing内核,使它可以更稳定,健壮,高效,快速等? 我们可以编写Linux内核的unit testing吗?

从python脚本卸载保险丝fs

我用python开发了fuse fs,现在想写testing。 在testing之前,我将fs安装到一些目录中: fs = MyFuseFS() fs.parse(errex=1, ['some_dir']) fs.main() 经过testing,我想卸载我的FS,想要做这样的事情: fs.unmount() 这是像“卸载”的方法吗? 也许有另一种方法来卸载FS?

在C / C ++中对命令行程序进行回归testing

我有一个Linux实用工具,parsing结构化的input(一个文本文件),处理它,并打印结果到屏幕上。 例如:(input) COMMAND=create NAME=Stack SURNAME=Overflow 我的实用程序将上述文本文件作为input,并尝试在数据库中创build一个对象(堆栈,溢出)。 如果操作成功执行,我的程序将返回如下所示的内容: COMMAND=create Code=0 Result=OK 或者在发生错误的情况下 COMMAND=create Code=10 Result=Duplicate entry 我正在寻找一种为我的二进制文件创build回归套件的好方法。 任何适合我的情况的想法? 在C / C ++的JUnit的任何替代?

用硬编码的内存地址主机testingC程序

我们将编写C代码的function/unit testing。 这个C程序将作为embedded式软件运行。 但是我们需要在Linux环境下运行testing。 问题是部分被测代码看起来像这样: my_addresses.h: #define MY_BASE_ADDRESS (0x00600000) #define MY_OFFSET_ADDRESS (0x108) my_code.c #include "my_addresses.h" static const My_Type* my_ptr = (My_Type*)(MY_BASE_ADDRESS + MY_OFFSET_ADDRESS); /* my_ptr is dereferenced and used … */ 很显然,在Linux主机环境下这样做不会那么顺利。 有没有办法在testing过程中解决这个问题? 我们可以以某种方式“redirect”程序来使用其他地址,这些地址是在testing过程中分配给内存的有效地址吗? 我们的第一个尝试是在testing期间用另一个头文件replace“my_addresses.h”,其中(extern)声明variables而不是硬定义 – 然后将malloc的内存分配给MY_BASE_ADDRESS等等。问题在于“static const”在c文件中声明。 当然,你不能把一个variables赋给一个静态的consttypes。 我们最好不要修改被testing的代码(尽pipe在最坏的情况下可能会这样)。

如何编译和链接unit testing?

我最近开始尝试在我的一个C ++项目中使用TDD。 在这方面,我很新,对于unit testing的编译和使用方式,我有一些非常基本的问题。 我正在使用Linux上的Boost.Test库。 编译一个包含所有testing套件的单个大型testing程序对于所有的单元是否很常见? 将testing分成许多较小的独立testing程序如何? 如何处理链接(与make )? 每个testing程序对象都必须与来自我的源程序的目标文件相链接,该目标文件包含正在testing的任何目标文件。 有没有办法自动处理? 更具体地说,是否有写一个Makefile make自动确定哪些对象文件必须链接在一起来生成一个特定的unit testing程序? 更新 :我的代码是组织在许多.cpp / .h文件,目前是单片(没有库)。 unit testing位于一个单独的目录中,通常与我的源代码树中的.cpp文件以1:1的关系。 更新2 :希望这会使我的问题不那么广泛,这里是我正在使用的Makefile的摘录: $(TSTDIR)%.$(TEST): $(OBJDIR)%.$(TEST).$(OBJEXT) $(OBJDIR)%.$(OBJEXT) @mkdir -p $(@D) @$(CXX) -o $@ $^ $(TSTLIBS) $(OBJDIR)%.$(OBJEXT): $(SRCDIR)%.$(SRCEXT) $(DEPDIR)%.$(DEPEXT) @mkdir -p $(@D) @$(CXX) $(CXXFLAGS) $(INCLUDES) -o $@ $< $(TEST)只是我用来区分unit testing和其他文件的标记。 请注意,我目前将所有testing程序与具有相同名称的目标文件链接起来。 但是,如果还需要来自另一个目标文件的符号,则会中断。 更新3 :这是我在上面讨论的一个例子。 MyOtherClass.h: class MyOtherClass { […]

无论如何,在Java JUnittesting中模仿或模拟Linux命令行

我最近一直在为一个应用程序的JUnittesting工作。 此应用程序在Linux环境中执行,并将参数,选项和其他重要信息合并到命令行中,然后发送到Java代码。 我一直在试图find不同的方法来testing使用JUnit 3.8.1的应用程序的某些方面,但我已经遇到了一些问题,处理命令行和从它传递的参数的方法。 我的问题是:无论如何设置一个模拟或伪命令的Linux命令行提示符,甚至尝试硬编码一个命令行喂给testing方法? 我一直在研究一段时间,但我找不到真正解决我的问题的任何事情。 任何帮助将不胜感激。

Pythonunit testing:AttributeError:在Linux上运行时没有属性“assertTrue”

我正在Python运行一些非常简单的unit testing,发现assertTrue()函数不起作用,而在同一个testing用例中assertEqual()工作正常。 为了简化这个问题,我已经将代码最小化为以下内容: import unittest class easyTest (unittest.TestCase): def setUp(self): pass def test_true(self): self.assertTrue(True) if __name__ == "__main__": unittest.main() 这批代码在我的Windows笔记本电脑上运行完美,但返回 AttributeError: easyTest instance has no attribute 'assertTrue' 当我尝试在Linux上运行它。 在这两台笔记本电脑上,我使用python 2.7.6 ,在IDE pyCharm Community Edition 2017.1.4 。 我的Linux笔记本电脑正在运行Ubuntu 14.04.1 我在这里发现了一个非常类似的问题: AttributeError:TestSwitch实例没有属性'assertTrue'由于似乎没有人回答这个问题,我在这里再次问,希望得到一些突出的答案。