有没有办法在JUnit中对测试进行分组,以便我只能运行一些组?
或者是否可以注释一些测试,然后全局禁用它们?
我正在使用JUnit 4,我不能使用TestNG.
编辑: @RunWith和@SuiteClasses很棒.但是,是否可以在测试类中仅注释一些测试?或者我是否必须注释整个测试类?
我希望能够以编程方式在项目中运行所有测试.我知道Eclipse有一个"Run as JUnit test"配置,它以某种方式抓住项目中的所有测试并运行它们.有没有办法让我以编程方式获取测试列表并运行它们?或者是否有一些很好的方法来构建包含所有测试用例的测试套件,而无需手动列出每个测试用例(全部700多个)?
我在Eclipse中尝试过"New ... - > Test Suite"选项,但这似乎仅适用于JUnit 3,通过从TestCase扩展来识别测试
测试类是JUnit 4,因此它们唯一的区别特征是注释,没有命名约定,没有来自TestCase的子类.
提前致谢!
我目前正在使用JUnit 4,并且需要将我的测试分成可以任意组合选择性运行的组.我知道TestNG有一个注释测试的功能,可以将它们分配给组,但我现在无法迁移到TestNG.看起来这可以通过一些自定义注释和一个自定义JUnit TestRunner在JUnit中轻松完成.我已经检查了两个JUnit文档并在网上搜索但是找不到这样的东西.有人知道这样的TestRunner吗?
更新:感谢您对测试套件的回复.我应该在原来的问题中解决这些问题.我们走了:我不想使用测试套件,因为他们需要我手动创建和管理它们,这意味着触摸我的所有测试并手动将它们安排到套件中(太多工作和维护噩梦).我需要做的就是运行所有单元测试,除了一些真正的集成测试.所以我想注释这些,并运行所有其他人.在其他时候,我想只运行集成测试.我还需要将单元测试分成多个组,这对套件来说是不可能的.希望这有助于清理事情.
更新2:如果JUnit没有这个OOB,我正在寻找一个将其添加到JUnit的开源库(注释+自定义JUnit Test Runner).
junit 4.10如何在测试开始运行之前打印测试用例名称..
所以我想在这里打印"sampleTest".
我怎么在junit 4.10做到这一点?先感谢您
class1:
TestSuite all = new TestSuite();
all.addTestSuite(class2);
all.run(result);
class2:
public class profileTest extends TestCase()
{
//I want to print the test cases name before the test actually starts executing
@Test
public void sampleTest1(){
//Some code here.
}
@Test
public void sampleTest2(){
//some more code here.
}
}
Run Code Online (Sandbox Code Playgroud) 所以我有一个eclipse项目,带有一堆junit测试文件.我想运行所有这些,除了具有特定后缀的那些(或者相反,只有那些具有一组后缀的那些).
例如,我可以在maven中这样做; 我可以在一个以"Test"结尾的文件中的项目中运行所有测试,并忽略所有其他文件.
我想在eclipse中做类似的事情而不必配置东西; 只是基于名字.现在我会去"运行配置.."然后选择"在一个选定的项目中运行所有测试......",但它会运行它在那里找到的所有内容; 我想根据后缀省略文件.
在eclipse中有没有办法做到这一点?
我有几个JUnit测试,需要一个昂贵的资源(一个WALA类hierachie)的参考,需要大约30秒创建.我想在我的整个测试套件中分享这个参考.
我想到了一个基类中的静态成员,它是用@BeforeClass方法启动的.运行测试后,无论如何都应该确定JVM.
有没有其他方法可以实现这一目标?或任何其他最佳做法?
我有两个测试类,都延伸TestCase.每个类都包含一系列针对我的程序运行的单独测试.
如何作为同一套件的一部分执行这两个类(以及它们拥有的所有测试)?
我正在使用jUnit 4.8.
从历史上看,我总是写这样的单元测试:
public void WidgetTest {
@Test
public void test_whatever() {
// Given...
// When...
// Then...
}
}
Run Code Online (Sandbox Code Playgroud)
这允许我在Eclipse中右键单击我的测试文件Run As >> JUnit,并直接从Eclipse内部测试该特定测试.然后,在进行本地(基于Ant)构建时,我将<junit>Ant任务配置src/test/java为一次运行所有测试.
我现在正在寻找一种中间解决方案.也就是说,只需单击一个按钮,就可以同时从Eclipse内部运行所有测试类.一位同事建议Junit有一个"测试套件"的概念,我可以附加我的所有测试类,但看起来这个测试套件是某种我不希望包含在内的JAR /工具我的项目.
所以我问:如何定义这样一个"测试套件",包括我所有的测试类,并从Eclipse内部一次性运行所有这些测试套件?提前致谢.