13604db5bcd124dfd1396fb51434d3f4337690cffBrett Chabot/* 23604db5bcd124dfd1396fb51434d3f4337690cffBrett Chabot * Copyright (C) 2012 The Android Open Source Project 33604db5bcd124dfd1396fb51434d3f4337690cffBrett Chabot * 43604db5bcd124dfd1396fb51434d3f4337690cffBrett Chabot * Licensed under the Apache License, Version 2.0 (the "License"); 53604db5bcd124dfd1396fb51434d3f4337690cffBrett Chabot * you may not use this file except in compliance with the License. 63604db5bcd124dfd1396fb51434d3f4337690cffBrett Chabot * You may obtain a copy of the License at 73604db5bcd124dfd1396fb51434d3f4337690cffBrett Chabot * 83604db5bcd124dfd1396fb51434d3f4337690cffBrett Chabot * http://www.apache.org/licenses/LICENSE-2.0 93604db5bcd124dfd1396fb51434d3f4337690cffBrett Chabot * 103604db5bcd124dfd1396fb51434d3f4337690cffBrett Chabot * Unless required by applicable law or agreed to in writing, software 113604db5bcd124dfd1396fb51434d3f4337690cffBrett Chabot * distributed under the License is distributed on an "AS IS" BASIS, 123604db5bcd124dfd1396fb51434d3f4337690cffBrett Chabot * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 133604db5bcd124dfd1396fb51434d3f4337690cffBrett Chabot * See the License for the specific language governing permissions and 143604db5bcd124dfd1396fb51434d3f4337690cffBrett Chabot * limitations under the License. 153604db5bcd124dfd1396fb51434d3f4337690cffBrett Chabot */ 163604db5bcd124dfd1396fb51434d3f4337690cffBrett Chabotpackage com.android.test.runner.junit4; 173604db5bcd124dfd1396fb51434d3f4337690cffBrett Chabot 183604db5bcd124dfd1396fb51434d3f4337690cffBrett Chabotimport org.junit.runners.BlockJUnit4ClassRunner; 193604db5bcd124dfd1396fb51434d3f4337690cffBrett Chabotimport org.junit.runners.model.FrameworkMethod; 203604db5bcd124dfd1396fb51434d3f4337690cffBrett Chabotimport org.junit.runners.model.InitializationError; 213604db5bcd124dfd1396fb51434d3f4337690cffBrett Chabotimport org.junit.runners.model.Statement; 223604db5bcd124dfd1396fb51434d3f4337690cffBrett Chabot 233604db5bcd124dfd1396fb51434d3f4337690cffBrett Chabot/** 243604db5bcd124dfd1396fb51434d3f4337690cffBrett Chabot * A specialized {@link BlockJUnit4ClassRunner} that will generate test results, by skipping test 253604db5bcd124dfd1396fb51434d3f4337690cffBrett Chabot * execution and loading. 263604db5bcd124dfd1396fb51434d3f4337690cffBrett Chabot */ 273604db5bcd124dfd1396fb51434d3f4337690cffBrett Chabotclass NonExecutingJUnit4ClassRunner extends BlockJUnit4ClassRunner { 283604db5bcd124dfd1396fb51434d3f4337690cffBrett Chabot 293604db5bcd124dfd1396fb51434d3f4337690cffBrett Chabot private static final Statement NON_EXECUTING_STATEMENT = new Statement() { 303604db5bcd124dfd1396fb51434d3f4337690cffBrett Chabot @Override 313604db5bcd124dfd1396fb51434d3f4337690cffBrett Chabot public void evaluate() throws Throwable { 323604db5bcd124dfd1396fb51434d3f4337690cffBrett Chabot // do nothing 333604db5bcd124dfd1396fb51434d3f4337690cffBrett Chabot } 343604db5bcd124dfd1396fb51434d3f4337690cffBrett Chabot }; 353604db5bcd124dfd1396fb51434d3f4337690cffBrett Chabot 363604db5bcd124dfd1396fb51434d3f4337690cffBrett Chabot public NonExecutingJUnit4ClassRunner(Class<?> klass) throws InitializationError { 373604db5bcd124dfd1396fb51434d3f4337690cffBrett Chabot super(klass); 383604db5bcd124dfd1396fb51434d3f4337690cffBrett Chabot } 393604db5bcd124dfd1396fb51434d3f4337690cffBrett Chabot 403604db5bcd124dfd1396fb51434d3f4337690cffBrett Chabot /** 413604db5bcd124dfd1396fb51434d3f4337690cffBrett Chabot * Override parent to generate an non executing statement 423604db5bcd124dfd1396fb51434d3f4337690cffBrett Chabot */ 433604db5bcd124dfd1396fb51434d3f4337690cffBrett Chabot @Override 443604db5bcd124dfd1396fb51434d3f4337690cffBrett Chabot protected Statement methodBlock(FrameworkMethod method) { 453604db5bcd124dfd1396fb51434d3f4337690cffBrett Chabot return NON_EXECUTING_STATEMENT; 463604db5bcd124dfd1396fb51434d3f4337690cffBrett Chabot } 473604db5bcd124dfd1396fb51434d3f4337690cffBrett Chabot} 48