首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用FEST进行多个JUnit测试

使用FEST进行多个JUnit测试
EN

Stack Overflow用户
提问于 2011-01-29 21:33:13
回答 2查看 860关注 0票数 2

我已经编写了几个JUnit测试方法来测试我的Java Swing (使用FEST)。我的类的格式如下:

代码语言:javascript
复制
public class Tests
{

    @BeforeClass
    public static void beforeClass() throws Exception { ... }

    @Before
    public void before() throws Exception { ... }

    @After
    public void after() throws Exception { ... }

    @AfterClass
    public static void afterClass() throws Exception { ... }

    @Test
    public void testA() { ... }

    @Test
    public void testB() { ... }

    @Test
    public void testC() { ... }

}

当我在Eclipse中运行这个类时,它只运行testA测试,而不运行testB或testC。如果我注释掉testA,testB就会运行--所以它似乎每次都只运行第一个测试。

Eclipse中的JUnit在完成第一个测试后会显示“Runs:2/3”,但不会继续进行,也不会显示任何错误。

我是不是做错了什么?我使用的是JUnit 4.8.1和FEST 1.2。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2011-01-29 22:06:57

我怀疑您在testA中有一个副作用,它阻止了testB中的代码运行。如果没有testAtestB中的细节,很难说发生了什么,但我可以给你一些一般的指导。

您可以注释掉testA,这是一个良好的开端。执行此操作时,是否同时运行testBtestC

尝试深入testA并慢慢注释掉testA底层的细节,直到测试运行testAtestB。一旦你这样做了,你至少知道问题出在哪里了,。

例如,如果您的代码类似于:

代码语言:javascript
复制
public void testA() {
    doX();
    doY();
    doZ();
    // Assert stuff
    ...
 }

注释掉doX()之后的所有内容,看看会发生什么。如果有效,那么取消对doY()的注释,看看会发生什么。如果它不起作用,那么深入到doX()并开始注释并重新运行您的测试。

这可以帮助你找出哪里出了问题的细节。如果当你弄清楚这一点时,你仍然被难住了,回来问一个关于这些细节的问题。

祝你好运找到你的bug!

票数 3
EN

Stack Overflow用户

发布于 2011-01-29 21:52:38

看起来你的代码片段没问题。

您可以检查每个@方法是否与其他方法的上下文无关,每个测试方法不应该共享相同的上下文。确保@Before@After具有正确的行为。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/4837128

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档