我想迭代一个项目列表,并对每个项目运行一个断言.一个例子可能是检查列表中的每个数字是否为奇数.
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年的博客文章(发布为答案),没有内置的参数化测试机制.我很乐意接受任何更清洁的解决方案.
给出问题'如何运行属于某个类别的所有测试?' 答案是以下方法对测试组织更好吗?
例:
我的问题更像是征求这种方法与经典测试套件方法的批准率.一个无与伦比的好处是每个新测试都立即被相关套房包含,没有套件维护.一个问题是每个测试的正确分类.
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图像测试套件的标准,特别是包含很少使用或经常以错误方式实现的功能.
所以:你知道这样的测试套件吗?
我在我的项目中使用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) 我试图使用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)
但我不确定这是否是推荐的方法,或者如果编写上述代码有任何缺点.
有人可以在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) 我有少量的Javascript要测试,但它可以在整个页面上运行,例如,通过编号ID"#t34"查找元素.我需要创建一些不同的页面来测试不同的可能配置.我看到我可以使用qunit-fixture为要访问的测试创建一个DOM树,但每个页面配置都需要是一个完整的页面,因为它将按id找到元素.
各种qUnit教程似乎专注于执行简单算术的纯Javascript函数的简单示例.我需要帮助了解如何使用许多不同的文件构建一个真正的测试套件.
更新了更多详细信息:我是coverage代码覆盖工具coverage.py的所有者.它会生成HTML报告.这些报告上有jQuery,可以添加一些交互性.我正在添加更多,并希望自动化测试.HTML看起来像这样.没有涉及服务器,这些只是写入本地目录的文件,因此没有机会使用ajax.我想针对许多不同的页面配置运行我的测试,主要是针对红色和绿色代码块的边缘情况.
因为我的代码按编号访问源代码行$("#t123")(例如),所以在同一个DOM中我不能有多个HTML的"页面",因为ID会发生冲突.如何针对不同的HTML页面运行qUnit?
我试图建立一些参数化的测试套件,遗憾的是到目前为止没有任何运气.我有两组参数,我想用所有可能的组合运行多个测试用例(它们在不同的类中).我尝试使用JUnit4,但我无法正确设置它.这将是我的基本想法:
TestSuite1.class设置一组参数,然后启动TestSuite2.class.TestSuite2.class 设置第二组参数,然后启动将使用这两个参数的实际测试. 同时现在看来,这是不可能的设置都Suite.class和Parameterized.class在RunWith同一时间注释(据谷歌,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 …
我正在尝试使用设置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没有找到单元测试.我究竟做错了什么?
我有一个@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
test-suite ×10
junit ×5
unit-testing ×4
java ×3
junit4 ×2
android ×1
arguments ×1
dom ×1
eclipse ×1
file-format ×1
gif ×1
image ×1
java-7 ×1
jquery ×1
php ×1
phpunit ×1
python ×1
python-2.7 ×1
qunit ×1
setuptools ×1
testcase ×1
testng ×1