我有关于设置Junit Test Suite的问题.首先,我使用的是JUnit libarary 4.7版.
我的问题是在测试套件中创建应用程序上下文,然后允许应用程序上下文访问它运行的所有测试套件.我需要应用程序上下文是因为某些单元测试正在使用它来填充所需的数据.所以我正在重复一些课程去做.
以下是我的snipplet:
@RunWith(Suite.class)
@SuiteClasses({RestServiceUnitTest.class})
public class IntegrationSuite {
public ApplicationContext appCtx;
@BeforeClass
public static void setUp() {
System.out.println("setting up in Suite");
appCtx = new FileSystemXmlApplicationContext("/integrationtest/rest_test_app_ctx.xml" );
}
@AfterClass
public static void tearDown() {
System.out.println("tearing down in Suite");
CleanUp cleaner = (CleanUp)appCtx.getBean("cleanup");
cleaner.clean();
}
}
Run Code Online (Sandbox Code Playgroud)
我需要可以访问RestServiceUnitTest类的appCtx.我可以知道这是怎么做到的吗?任何人都有任何想法.
我猜它非常类似于: 测试调用:如何设置所有测试套件的通用性
但是我不知道如何访问你在unittest中的testsuite类中创建的变量,因为答案没有提到它.
我正在编写一个解析器,为每个命令生成32位操作码.例如,对于以下语句:
set lcl_var = 2
Run Code Online (Sandbox Code Playgroud)
我的解析器生成以下操作码:
// load immdshort 2 (loads the value 2)
0x10000010
// strlocal lclvar (lcl_var is converted to an index to identify the var)
0x01000002
Run Code Online (Sandbox Code Playgroud)
请注意,lcl_var可以是任何东西,即可以给出任何变量.如何为此编写单元测试用例?我们可以避免对值进行硬编码吗?有没有办法让它通用?
我目前正在为一个班级的暑假学习python,并且已经开始实现不同类型的堆和基于优先级的数据结构.
我开始为项目编写单元测试套件,但是在创建通用单元测试时遇到了困难,该测试只测试接口并且忽略了实际的实现.
我想知道是否有可能做这样的事情..
suite = HeapTestSuite(BinaryHeap())
suite.run()
suite = HeapTestSuite(BinomialHeap())
suite.run()
Run Code Online (Sandbox Code Playgroud)
我目前正在做的只是感觉......错了(多重继承?确认!)..
class TestHeap:
def reset_heap(self):
self.heap = None
def test_insert(self):
self.reset_heap()
#test that insert doesnt throw an exception...
for x in self.inseq:
self.heap.insert(x)
def test_delete(self):
#assert we get the first value we put in
self.reset_heap()
self.heap.insert(5)
self.assertEquals(5, self.heap.delete_min())
#harder test. put in sequence in and check that it comes out right
self.reset_heap()
for x in self.inseq:
self.heap.insert(x)
for x in xrange(len(self.inseq)):
val = self.heap.delete_min()
self.assertEquals(val, x)
class BinaryHeapTest(TestHeap, unittest.TestCase): …Run Code Online (Sandbox Code Playgroud) 我正在使用 Boost.Test 库在 C++ 中实现单元测试用例。假设我有两间套房,例如
BOOST_AUTO_TEST_SUITE(TestA)
BOOST_AUTO_TEST_CASE(CorrectAddition)
{
BOOST_CHECK_EQUAL(2+2, 4);
}
BOOST_AUTO_TEST_CASE(WrongAddition)
{
BOOST_CHECK_EQUAL(2 + 2, 5);
}
BOOST_AUTO_TEST_SUITE_END()
BOOST_AUTO_TEST_SUITE(TestB)
BOOST_AUTO_TEST_CASE(CorrectAddition)
{
bool ret = true;
BOOST_CHECK_EQUAL(ret, true);
}
BOOST_AUTO_TEST_CASE(WrongAddition)
{
BOOST_CHECK_EQUAL(2 + 2, 5);
}
BOOST_AUTO_TEST_SUITE_END()
Run Code Online (Sandbox Code Playgroud)
我只想运行套件“TestB”,我该如何执行它。我真的很感谢您的时间和帮助。抱歉,如果此问题已在其他地方发布或记录。
我正在尝试将JUnit添加到一个大型项目中,并且在嵌套测试套件时遇到了困难.例如:
@RunWith(Suite.class)
@Suite.SuiteClasses({Test2.class, .....})
public class Test1{
}
@RunWith(Suite.class)
@Suite.SuiteClasses({Test3.class, .....})
public class Test2{
//might have tests
}
@RunWith(Suite.class)
public class Test3{
//tests here
}
Run Code Online (Sandbox Code Playgroud)
每个类在它自己的包中运行测试,以及所有子包TestSuite
运行Test1会导致java.lang.Exception:没有可运行的方法.我如何让它工作?有没有更好的方法来组织测试而没有一个没有巨大的列表?
我有很多测试套件,每个测试套件包含许多测试类.这是他们的样子:
import org.junit.AfterClass;
import org.junit.BeforeClass;
import org.junit.runner.RunWith;
import org.junit.runners.Suite;
import org.junit.runners.Suite.SuiteClasses;
@RunWith(Suite.class)
@SuiteClasses( {ATest.class, BTest.class})
public class MyFirstTestSuite {
@BeforeClass
public static void beforeClass() throws Exception {
// load resources
}
@AfterClass
public static void afterClass() throws Exception {
// release resources
}
}
Run Code Online (Sandbox Code Playgroud)
有时我想完全禁用整个测试套件.我不想将每个测试类设置为@Ignore,因为每个测试套件都使用@BeforeClass和加载和释放资源,@AfterClass并且我想在忽略测试套件时跳过此加载/释放.
所以问题是:@Ignore我可以在整个测试套件上使用类似的东西吗?
我正在寻找一个全面的测试套件,以针对HTML5标准测试一组解析和处理库.
我在哪里可以找到涵盖大部分HTML5标准的权威,全面的测试套件?
我一直在寻找渲染测试,但任何类型的测试都可以 - 只要它们包含一组html源代码,它可以运行大部分(如果不是全部)标准.
我可以使用spec或suite名称作为参数运行量角器测试吗?我目前正在运行它:
protractor myconf.js
Run Code Online (Sandbox Code Playgroud)
谢谢.
javascript testing test-suite command-line-arguments protractor
我的问题与这个问题类似,但它指的是Gradle“不是” Maven。
我已使用注释标记了项目中的多个测试@Category,并创建了我的测试套件(见下文)。
如何使用 Gradle 运行它?
测试套件:
@RunWith(Categories.class)
@Categories.IncludeCategory(MyTestSuite.class)
@Suite.SuiteClasses(ClassUnderTest.class)
public interface MyTestSuite {
}
Run Code Online (Sandbox Code Playgroud) 目标 能够对整个测试套件执行多次重试,直到所有测试都成功。
而不是配置测试套件中每个测试允许的重试,如配置测试重试:全局配置所定义
如何提供测试套件重试?
如果测试套件中的任何测试失败,则重新开始并再次重试整个测试套件,直到测试套件中的所有测试成功为止,或者当整个测试套件重试次数超过请求的重试次数时停止。
在以下代码中,配置适用于测试套件中每个测试的重试尝试。
此测试套件的预期目标是,测试'TEST counter'预计会失败,直到增量_counter等于_runModeRetries,然后才预计会成功。重复整个测试套件意味着重新运行测试'TEST counter'之前的每个测试,直到成功。
然而,发生的情况是,只有test'TEST counter'被重试了_runModeRetries几次,并且_counter不会增加,因为test'TEST increment'只被调用一次。
我为什么要这个?
我的测试套件包含一系列需要按顺序运行的测试,如果测试失败,则重试需要重新启动序列。例如,仅当通过完整的测试套件重试再次调用测试_counter时才能递增。'TEST increment'
我如何进行测试套件重试?
let _counter = 0;
const _runModeRetries = 3;
context(
'CONTEXT Cypress Retries',
{
retries: {
runMode: _runModeRetries,
openMode: 0
}
},
() => {
it('TEST increment', () => {
_counter++;
expect(_counter).to.be.a('number').gt(0);
});
it('TEST true', () => {
expect(true).to.be.a('boolean').to.be.true; …Run Code Online (Sandbox Code Playgroud) test-suite ×10
unit-testing ×5
java ×3
junit ×3
junit4 ×3
testing ×3
boost ×1
cypress ×1
gradle ×1
html5 ×1
interface ×1
javascript ×1
protractor ×1
python ×1
tdd ×1
testcase ×1