1 /*
2  * Copyright (C) 2010 The Android Open Source Project
3  *
4  * Licensed under the Apache License, Version 2.0 (the "License");
5  * you may not use this file except in compliance with the License.
6  * You may obtain a copy of the License at
7  *
8  *      http://www.apache.org/licenses/LICENSE-2.0
9  *
10  * Unless required by applicable law or agreed to in writing, software
11  * distributed under the License is distributed on an "AS IS" BASIS,
12  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13  * See the License for the specific language governing permissions and
14  * limitations under the License.
15  */
16 package com.android.tradefed.testtype;
17 
18 import com.android.tradefed.device.DeviceNotAvailableException;
19 import com.android.tradefed.result.ITestInvocationListener;
20 
21 import junit.framework.Test;
22 
23 /**
24  * A test that reports results directly to a {@link ITestInvocationListener}.
25  * <p/>
26  * This has the following benefits over a JUnit {@link Test}
27  * <ul>
28  * <li> easier to report the results of a test that has been run remotely on an Android device, as
29  * the results of a remote test don't need to be unnecessarily marshalled and unmarshalled from
30  * {@link Test} objects.
31  * </li>
32  * <li> supports reporting test metrics</li>
33  * </ul>
34  */
35 public interface IRemoteTest {
36 
37     /**
38      * Runs the tests, and reports result to the listener.
39      *
40      * @param listener the {@link ITestInvocationListener} of test results
41      * @throws DeviceNotAvailableException
42      */
run(ITestInvocationListener listener)43     public void run(ITestInvocationListener listener) throws DeviceNotAvailableException;
44 }
45