Test run failed: Test run failed to complete. Expected 1 tests, received 0
Asked Answered
H

8

13

I tried starting a JUnit test (robotium) for my app:

public class MainTest extends ActivityInstrumentationTestCase2<MainActivity> {
    private Solo solo;

    public MainTest() {
        super("nix.android.contact", MainActivity.class);// TODO Auto-generated constructor stub
    }

    protected void setUp() throws Exception {
        super.setUp();
        solo = new Solo(getInstrumentation(), getActivity());
    }

    public void AddContact() {
        solo.assertCurrentActivity("main", MainActivity.class);
    }
}

Manifest

 <instrumentation
    android:name="android.test.InstrumentationTestRunner"
    android:targetPackage="nix.android.contact" />

<application
    android:icon="@drawable/ic_launcher"
    android:label="@string/app_name" >
    <uses-librar

y android:name="android.test.runner" />
    </application>

When I try to run the test this is the error I get in the console:

Test run failed: Test run failed to complete. Expected 1 tests, received 0

I tried creating another test a different app (very simple app) and it works.

Hoch answered 24/7, 2012 at 22:5 Comment(0)
E
5

I had this problem when I didn't have a no-args constructor.

public class MainActivityTest extends
    ActivityInstrumentationTestCase2<MainActivity_> {

public MainActivityTest() {
    super(MainActivity_.class);
}
...
Edelmiraedelson answered 10/10, 2012 at 20:0 Comment(0)
L
2

I had the same issue while running instrumentation tests on Android (@RunWith(AndroidJUnit4.class)).

I had the following error:

Tests on Nexus_5X_API_26(AVD) - 8.0.0 failed: 
Test run failed to complete. Expected 156 tests, received 152

The problem was that one of the test classes was failing inside a method marked with @BeforeClass, hence no tests were executed for that particular class. Moreover that, the exception which was thrown inside @BeforeClass didn't end-up in the tests-output/report. That's why it was hard to find a reason of "Expected N tests, received M" error message.

So, if you run into the same issue - check your @Before and @BeforeClass implementations - an exception there could be the reason. Hope this helps.

Laudable answered 19/6, 2018 at 10:29 Comment(0)
R
1

The problem is in your call at

super("nix.android.contact", MainActivity.class);

In my code I have

super("nix.android.contact", Class.forName("nix.android.contact.MainActivity"));

I've also done it this way without have to name the Generic for the ActivityInstrumentationTestCase 2

public class TestApk extends ActivityInstrumentationTestCase2 {

    private static final String TARGET_PACKAGE_ID = "nix.android.contact";
    private static final String LAUNCHER_ACTIVITY_FULL_CLASSNAME = "nix.android.contact.MainActivity";

    private static Class<?> launcherActivityClass;
    static{
            try {
                    launcherActivityClass = Class.forName(LAUNCHER_ACTIVITY_FULL_CLASSNAME);
            } catch (ClassNotFoundException e) {
                    throw new RuntimeException(e);
            }
    }

    @SuppressWarnings("unchecked")
    public TestApk() throws ClassNotFoundException {
            super(TARGET_PACKAGE_ID, launcherActivityClass);
    }
Rip answered 24/7, 2012 at 22:14 Comment(0)
T
0

Check that you're not proguarding out a method that your test's contructor depends upon but that nothing in the application uses - logcat will complain about a missing class or method from your application package.

Try uninstalling the target package, to check it's not left over from an alternate build (if, for instance you use Maven alongside Eclipse).

Tourcoing answered 26/9, 2013 at 12:19 Comment(0)
D
0

I had this error and I fixed it removing the parameter from the constructor method, it was created by Eclipse wizard as:

public OptionsActivityTest( String name ) {

I just had to remove the "String name" to make my tests work again.

Dextroglucose answered 25/1, 2015 at 17:49 Comment(0)
B
0

I had the same problem while I was testing my app.
Sometime it works but most of the times the test fails and raised the same error.

Test failed to run to completion.
Reason: 'Test run failed to complete. Expected 1 tests, received 0'.
Check device logcat for details

I checked the test name in all my test class and it is the same in two class, I changed the name of test and it works when I start test again.

It may also error when my device disconnects from my computer.

Breastbone answered 19/4, 2018 at 5:49 Comment(0)
R
-1

I had the same error message. The problem was that my test method name needed to start with 'test'.

Eg: testMethod1() works whilst method1Test() gives the error.

Ruffian answered 7/10, 2012 at 11:15 Comment(2)
Right. All methods has to has names with prefix "test" !Hoch
Is this a joke?Crept
S
-3

All tests name should start with prefix "test".

Stopcock answered 25/4, 2013 at 6:58 Comment(0)

© 2022 - 2024 — McMap. All rights reserved.