微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

java – AndroidJUnit4.class org.junit.Assume.assumeTrue = AssumptionViolatedException

我已经设法让我的Android项目转换到JUnit4,当然我想要做的主要原因是无法正常工作.如果有人在这里有想法,会喜欢任何帮助.

我试图解决的问题是,如果构建未指向登台服务器,我想自动跳过某些测试.我已经设置了一个BUILD_TYPE,它使用gradle来注入基本URL.

我在我的设置中设置了一个assumeThat子句,它正确识别构建何时不是暂存,但是它不是暂停和忽略其余的测试,而是抛出异常而失败.

这是我的实时API测试的基类 – 我用@RunWith(AndroidJUnit4.class)注释了这一点,所以理论上应该始终使用JUnit4运行器:

package com.[my package].nonuitests.liveservertests;

import android.support.test.runner.AndroidJUnit4;
import com.[my package].nonuitests.BaseandroidTest;
import org.junit.Test;
import org.junit.runner.RunWith;

/**
 * Tests against the live API. All tests descending from this class will
 * be ignored if the BUILD_TYPE is not staging.
 */
@RunWith(AndroidJUnit4.class)
public class BaseLiveServerTests extends BaseandroidTest {

    private static final String STAGE = "staging";

    /******************
     * SETUP/TEARDOWN *
     ******************/

    @Override
    public void setUp() throws Exception {
        super.setUp();

        //Todo: Y U NO WORK?!
        //This should cause the rest of the test to be skipped if it fails,//but is instead throwing an AssumptionViolatedException. 
        assumeTrue(STAGE.equals(BuildConfig.BUILD_TYPE));
    }
}

所以,我的问题:

>有更好的方法吗?从理论上讲,这可以通过口味来完成,但我之前尝试的却让其他一切变得更加复杂.
>我的研究表明谷歌没有在他们的跑步者中实施某种导致爆炸的东西,但我有一段时间搞清楚我能做什么/应该做些什么来解决这个问题.有什么建议我应该继承,以使其按预期工作?

任何其他想法将是最受欢迎的.谢谢!

编辑(2015年1月26日上午11:40 CST):按照Grzesuav’s suggestion,我将a stab作为@Rule执行此操作,但目前它还没有工作.这似乎是一条很有希望的道路,但目前还没有奏效.

编辑2(2015年1月26日下午12:15 CST):好的,now it’s working.

最佳答案
https://github.com/junit-team/junit/wiki/Assumptions-with-assume

ad 2)自定义运行程序可以不同地处理假定语句.要修复它,你应该编写自己的Android版本,并实现一种处理假设作为本机JUnit运行器做的方式或为android测试运行器制造一个bug.

ad 1)由我推荐:尝试使用JUnit规则:

http://www.codeaffine.com/2013/11/18/a-junit-rule-to-conditionally-ignore-tests/
http://cwd.dhemery.com/2010/12/junit-rules/

原文地址:https://www.jb51.cc/android/431209.html

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐