标签: test-suite

使用参数实例化Python unittest.TestCase

我想迭代一个项目列表,并对每个项目运行一个断言.一个例子可能是检查列表中的每个数字是否为奇数.

TestCase:

class TestOdd(unittest.TestCase):
    def runTest(self):
        """Assert that the item is odd"""
        self.assertTrue( NUMBER %2==1, "Number should be odd")
Run Code Online (Sandbox Code Playgroud)

测试suite:

if __name__ == '__main__':
    suite = unittest.TestSuite()
    suite.addTest(TestOdd())
    # I would like to have:
    # suite.addTest(TestOdd(1))
    # suite.addTest(TestOdd(2))
    # suite.addTest(TestOdd(3))
    # ...
    unittest.main()
Run Code Online (Sandbox Code Playgroud)

如何TestOdd使用参数实例化对象 - 例如,要测试的数字?

更新:根据2011年的博客文章(发布为答案),没有内置的参数化测试机制.我很乐意接受任何更清洁的解决方案.

arguments test-suite python-2.7 python-unittest

13
推荐指数
2
解决办法
7986
查看次数

新的JUnit 4.8.1 @Category渲染测试套件几乎已经过时了吗?

给出问题'如何运行属于某个类别的所有测试?' 答案是以下方法对测试组织更好吗?

  1. 定义包含所有测试的主测试套件(例如,使用ClasspathSuite)
  2. 设计足够的JUnit类别集合(足以表示每个理想的测试集合可由一个或多个类别识别)
  3. 使每个测试符合相关类别的资格
  4. 基于主测试套件和类别集定义目标测试套件

例:

  • 识别速度(慢速,快速),依赖(模拟,数据库,集成等),功能(填写适用类别),域(填写适用类别)等类别.
  • 要求每个测试都使用相关的类别进行适当的限定(标记).
  • 使用ClasspathSuite创建主测试套件(在类路径中找到所有测试)
  • 通过使用类别限定主测试套件来创建目标套件,例如模拟测试套件,快速数据库测试套件,域X测试套件的慢速集成等.

我的问题更像是征求这种方法与经典测试套件方法的批准率.一个无与伦比的好处是每个新测试都立即被相关套房包含,没有套件维护.一个问题是每个测试的正确分类.

java junit unit-testing junit4 test-suite

12
推荐指数
1
解决办法
3335
查看次数

使用很少使用的功能的GIF测试套件包含图像

GIF图形格式的规格(复数,因为有版本87a和89a)很容易在互联网上找到(对于那些不想谷歌的人:

正如您在规范中看到的那样,GIF支持我从未见过的一些功能; 我只想举两个例子(为简单起见,GIF 89a): - 明文扩展:在http://www.vias.org/pngguide/chapter11_15.html上有一些更详细的文档 - 像素宽高比:见部分18.逻辑屏幕描述符.GIF 89a规格

另一方面,对于PNG,似乎有很多可用的测试图像:http://www.libpng.org/pub/png/pngmisc.html(向下滚动); 最常见的是官方的PNG测试套件http://www.schaik.com/pngsuite/,也可以在http://www.libpng.org/pub/png/pngsuite.html上反映出来.

我正在寻找的是一个GIF图像测试套件,它还特别包含使用很少使用或经常以错误方式实现的功能的图像.

我能在互联网上找到的最好结果如下:

因此,我发现没有任何内容满足上述GIF图像测试套件的标准,特别是包含很少使用或经常以错误方式实现的功能.

所以:你知道这样的测试套件吗?

file-format image gif test-suite

12
推荐指数
1
解决办法
3272
查看次数

测试多个文件夹

我在我的项目中使用PHPUnit 3.5.12,netbean 6.9和git子模块.

所以我的文件夹架构看起来像这样:

lib/
lib/submodule1
lib/submodule1/src
lib/submodule1/tests
lib/submodule2
lib/submodule2/src
lib/submodule2/tests
src/
tests/
Run Code Online (Sandbox Code Playgroud)

考虑到我的主要测试文件夹(使用phpunit_netbean.xml和bootstrap.php)位于/ tests /文件夹中; 我怎样才能在/ lib/*/tests /中运行测试?

我看看测试套件,但我无法让它工作.到目前为止,我在tests/phpunit_netbean.xml文件中尝试了以下配置:

<?xml version="1.0"?>
<phpunit
    bootstrap="./bootstrap.php"
    strict="true"
    stopOnError="false"
    stopOnFailure="false"
    stopOnIncomplete="false"
    stopOnSkipped="false"
    colors="false"
    verbose="true"
    >

    <testsuites>
        <testsuite name="modules">
            <directory>../lib/*</directory>
        </testsuite>
    </testsuites>

</phpunit>
Run Code Online (Sandbox Code Playgroud)

当我在Netbean中点击ALT + F6时,我只有来自/ test的测试.同样的事情:

/tests$ phpunit -c phpunit_netbean.xml --testdox ./
enter code here
Run Code Online (Sandbox Code Playgroud)

另外,我试过这个:

/tests$ phpunit -c phpunit_netbean.xml --testdox --loader modules ./
PHPUnit 3.5.12 by Sebastian Bergmann.

Could not use "modules" as loader.
Run Code Online (Sandbox Code Playgroud)

php phpunit unit-testing project-organization test-suite

10
推荐指数
1
解决办法
8501
查看次数

如何使用JUnit4以编程方式执行测试套件?

我试图使用API​​调用JUnit测试套件.我知道您可以使用以下方法来配置测试类:

@RunWith(Suite.class)
@Suite.SuiteClasses({
  Test1.class,
  Test2.class, ...
})
Run Code Online (Sandbox Code Playgroud)

但是,有没有办法使用Java API触发整个套件,例如使用JUnitCore?

例如,您可以使用以下代码触发测试:

Runner r = 
try {
  r = new BlockJUnit4ClassRunner(Class.forName(testClass));
} catch (ClassNotFoundException | InitializationError e) {
  // handle
}
JUnitCore c = new JUnitCore();
c.run(Request.runner(r));
Run Code Online (Sandbox Code Playgroud)

更新:

从API,似乎Suite类本身是一个跑步者,因此以下代码似乎工作:

Suite suite = new Suite(klass, new RunnerBuilder() {
... // Implement methods
});
JUnitCore c = new JUnitCore();
c.run(Request.runner(suite));
Run Code Online (Sandbox Code Playgroud)

但我不确定这是否是推荐的方法,或者如果编写上述代码有任何缺点.

junit automated-tests junit4 test-suite

10
推荐指数
1
解决办法
2万
查看次数

如何创建仅在一个或多个类中运行指定测试的Android测试套件?

有人可以在Android中使用JUnit来介绍如何在测试套件中组织测试吗?我发现几乎所有的例子都是不工作的,我想知道我没有得到什么.

我用一个包含几个测试的AndroidTestCase类和一个包含包中所有测试的测试套件做了一个小例子.这工作(显然):

包含测试的测试用例类:

public class ArithmeticsTest extends AndroidTestCase {
    SomeClass sctest;

    protected void setUp () throws Exception {
        sctest = new SomeClass();       
        super.setUp();
    }


    /* Test the SomeClass.addNumbers (int, int) method: */
    public void testAddNumbers () {
        assertEquals(9, sctest.addNumbers(3, 6));
    }

    /* Test the SomeClass.addNumbers (int, int) method: */
    public void testSubtractNumbers () {
        assertEquals(2, sctest.subtractNumbers(6, 4));
    }


    protected void tearDown () throws Exception {
        super.tearDown();
    }
}
Run Code Online (Sandbox Code Playgroud)

测试套件类包括包中的所有测试:

import junit.framework.Test;
import android.test.suitebuilder.TestSuiteBuilder;

public class ProjectTestSuite_AllTests {
    public static Test …
Run Code Online (Sandbox Code Playgroud)

eclipse junit android test-suite testcase

10
推荐指数
1
解决办法
7276
查看次数

我需要为qUnit测试套件提供许多不同的整页DOM样本

我有少量的Javascript要测试,但它可以在整个页面上运行,例如,通过编号ID"#t34"查找元素.我需要创建一些不同的页面来测试不同的可能配置.我看到我可以使用qunit-fixture为要访问的测试创建一个DOM树,但每个页面配置都需要是一个完整的页面,因为它将按id找到元素.

各种qUnit教程似乎专注于执行简单算术的纯Javascript函数的简单示例.我需要帮助了解如何使用许多不同的文件构建一个真正的测试套件.

更新了更多详细信息:我是coverage代码覆盖工具coverage.py的所有者.它会生成HTML报告.这些报告上有jQuery,可以添加一些交互性.我正在添加更多,并希望自动化测试.HTML看起来像这样.没有涉及服务器,这些只是写入本地目录的文件,因此没有机会使用ajax.我想针对许多不同的页面配置运行我的测试,主要是针对红色和绿色代码块的边缘情况.

因为我的代码按编号访问源代码行$("#t123")(例如),所以在同一个DOM中我不能有多个HTML的"页面",因为ID会发生冲突.如何针对不同的HTML页面运行qUnit?

jquery dom qunit test-suite

9
推荐指数
2
解决办法
1457
查看次数

参数化单元测试套件

我试图建立一些参数化的测试套件,遗憾的是到目前为止没有任何运气.我有两组参数,我想用所有可能的组合运行多个测试用例(它们在不同的类中).我尝试使用JUnit4,但我无法正确设置它.这将是我的基本想法:

  1. TestSuite1.class设置一组参数,然后启动TestSuite2.class.
  2. TestSuite2.class 设置第二组参数,然后启动将使用这两个参数的实际测试.

同时现在看来,这是不可能的设置都Suite.classParameterized.classRunWith同一时间注释(据谷歌,Parameterized延伸Suite,我通常会"没有可运行的方法找到了"如果我用的消息.)

这就是我的代码基本上是这样的:

TestSuite1.class:

@RunWith(Parameterized.class)
@Parameterized.SuiteClasses({TestSuite2.class})
//I have tried with @RunWith(Suite.class) and
//@Suite.SuiteClasses({TestSuite2.class}) annotations also - all combinations
public class TestSuite1{

  public TestSuite1(int number) {
    Params.first = number;
  } 

  @Parameters
  public static Collection<Object[]> parameters(){
    Object[][] data = new Object[][] { { 1 }, { 2 }, { 3 }, { 4 } };
    return Arrays.asList(data);
  }
}
Run Code Online (Sandbox Code Playgroud)

TestSuite2.class看起来一样TestSuite1.class,除了我已经添加TestCase1.class到套件而不是TestSuite2 …

java junit testng test-suite

9
推荐指数
1
解决办法
2688
查看次数

如何在python setup.py中运行测试套件

我正在尝试使用设置Python包setup.py.我的目录结构如下所示:

setup.py
baxter/
  __init__.py
  baxter.py
tests/
  test_baxter.py
Run Code Online (Sandbox Code Playgroud)

这是setup.py:

from setuptools import setup, find_packages
setup(name='baxter',
      version='1.0',
      packages=find_packages()
      )
Run Code Online (Sandbox Code Playgroud)

我先做一个python setup.py build.当我运行时,python setup.py test我立即得到这个结果:

running test
Run Code Online (Sandbox Code Playgroud)

没有别的.单元测试没有运行,因为测试需要至少15秒才能完成,并且消息立即running test返回.

所以似乎python setup.py test没有找到单元测试.我究竟做错了什么?

python unit-testing setuptools test-suite

9
推荐指数
1
解决办法
4779
查看次数

为扩展特定类的所有类创建动态Junit测试套件

我有一个@SuiteClasses和许多junit测试类扩展它,并且新的测试类在
我现在有这个测试套件的时候扩展它

@RunWith(Suite.class)
@SuiteClasses({ATest.class, BTest.class, CTest.class})
public class AllTests {}
Run Code Online (Sandbox Code Playgroud)

ATest,BTest,CTest,...,ZTest扩展@SuiteClasses
如何创建一个动态运行所有子类的junit测试套件,@SuiteClasses而不必@SuiteClasses使用Junit,仅限java-7,没有第三方手动列出它们.

我找到了解决方案

https://gist.github.com/amgadhanafy/b172cf776bfe313762d38480e17f4517

java junit unit-testing test-suite java-7

9
推荐指数
0
解决办法
649
查看次数