如何使用JUnit 4创建测试套件?
我见过的所有文档似乎都不适合我.如果我使用Eclipse向导,它不会让我选择我创建的任何测试类.
我们编写了一个创建PDF文件的软件.我们如何检查生成的pdf文件是否是PDF/A兼容性?有没有可用的测试套件?
如果知道Open-Office等其他产品是否能生成PDF/A兼容性文件,也会很高兴.
RSpec before(:suite)和after(:suite)MiniTest 有替代品吗?
我怀疑自定义测试运行器是有序的,但我无法想象这不是一个常见的要求,所以有人可能实现了.:-)
我已经设法找到如何在jUnit 4中创建一个TestSuite,但我真的很想念在TestSetup中包装套件的v3的可能性.
关于如何在jUnit 4中为一组测试用例执行一些@ BeforeClass/@ AfterClass设置的任何想法?
即
@RunWith(Suite.class)
@Suite.SuiteClasses({Test1.class, Test2.class})
public class MyTestSuite {
@BeforeClass public static void setUpClass() {
// Common initialization done once for Test1 + Test2
}
@AfterClass public static void tearDownClass() {
// Common cleanup for all tests
}
}
Run Code Online (Sandbox Code Playgroud)
不幸的是,上面的代码片段不起作用.@BeforeClass仅适用于每个测试类.
我有多个Junit测试套件(SlowTestSuite,FastTestSuite等).我想使用maven命令只运行特定的套件.例如
mvn clean install test -Dtest=FastTestSuite -DfailIfNoTests=false
Run Code Online (Sandbox Code Playgroud)
但它不起作用.根本就没有运行任何测试.请给我任何建议.
我有两个测试用例(两个不同的文件),我想在测试套件中一起运行.我可以通过"正常"运行python来运行测试但是当我选择运行python-unit测试时它会说0个测试运行.现在我只想尝试至少进行一次测试才能正确运行.
import usertest
import configtest # first test
import unittest # second test
testSuite = unittest.TestSuite()
testResult = unittest.TestResult()
confTest = configtest.ConfigTestCase()
testSuite.addTest(configtest.suite())
test = testSuite.run(testResult)
print testResult.testsRun # prints 1 if run "normally"
Run Code Online (Sandbox Code Playgroud)
这是我的测试用例设置的一个例子
class ConfigTestCase(unittest.TestCase):
def setUp(self):
##set up code
def runTest(self):
#runs test
def suite():
"""
Gather all the tests from this module in a test suite.
"""
test_suite = unittest.TestSuite()
test_suite.addTest(unittest.makeSuite(ConfigTestCase))
return test_suite
if __name__ == "__main__":
#So you can run tests from this module individually. …Run Code Online (Sandbox Code Playgroud) python unit-testing regression-testing test-suite python-unittest
这在JUnit4中是否可行?
在JUnit3中,我会执行以下操作:
public class MyTestSuite {
public static Test suite() throws Exception {
doBeforeActions();
try {
TestSuite testSuite = new TestSuite();
for(Class clazz : getAllClassesInPackage("com.mypackage")){
testSuite.addTestSuite(clazz);
}
return testSuite;
} finally {
doAfterActions
}
}
...
}
Run Code Online (Sandbox Code Playgroud) 我将在即将完成的一些工作任务中使用JUnit实现一些单元测试.我从前任雇主那里获得了JUnit的轻微经验,但在我读书的时候,我遇到了测试套件.我不知道我是否会使用它们,但我特别感兴趣的是它们为什么存在.
有人能给我一个我想要使用测试套件的实际情况吗?还有,使用测试套件有什么好处而不是仅使用各种独立测试?
编辑:我觉得这个问题不是重复的,因为类似问题的其他答案给出了一般定义,或者代码片段(据我所见),我正在寻找从设计角度更实用的套件.我想知道为什么将测试捆绑在一起可能是一个好主意,或者为什么它可能不是,等等.
我正在尝试使用JUnit5创建测试套件.经过一些研究后,我无法断定它是否是受支持的功能.
该官方用户指南,只提到套房关于向后兼容的JUnit 4.
这是在JUnit 4中完成的:
@RunWith(Suite.class)
@SuiteClasses({Test1.class, Test2.class})
public class TestSuite {
}
Run Code Online (Sandbox Code Playgroud)
这是否意味着,测试套件现在被视为已弃用,或者是否仍以其他名称提供相同的概念?
我正试图在我的项目中从Ant构建迁移到Gradle.有一堆测试用例(junit.framework.TestCase的子类)和几个测试套件(junit.framework.TestSuite的子类).Gradle自动选择要运行的所有测试用例(junit.framework.TestCase的子类),而不是套件(junit.framework.TestSuite的子类).
我可能可以通过调用ant.junit来运行它.但是,我觉得应该有一种原生的简单方法来强制gradle选择并运行.我在文档中找不到任何内容.我错过了什么吗?