10

I have seen all the examples on the web and it seems real simple. I have a bare-bones app that displays a string. I have a a Android JUnit test project that I created when the app was being created (eclipse asked if I wanted to create a test app).

When I run the test app (Run As --- Android JUnit) I see the following in the console....

[2010-02-27 00:45:03 - SimpleCalculatorTest]Launching instrumentation android.test.InstrumentationTestRunner on device emulator-5554 [2010-02-27 00:45:12 - SimpleCalculatorTest]Test run complete

I do not see any of the code in the testcase being called. My testcase is a class that extends ActivityInstrumentationTestCase2. DDMS log shows : 02-27 00:44:58.521: WARN/TestGrouping(1275): Invalid Package: '' could not be found or has no tests

Any ideas? I have tried everything....

razlebe
  • 7,134
  • 6
  • 42
  • 57
nik
  • 109
  • 1
  • 3

2 Answers2

10

If you create a new ActivityInstrumentationTestCase2 then you need a default constructor that points to the class that you want to test.

ex:

public class TestappTest extends ActivityInstrumentationTestCase2<AppUnderTest> {

  public TestappTest() {
    super("my.package.app", AppUnderTest.class);
  }

  public void testApp() {
      // Testcase
  }
}
lars
  • 2,015
  • 1
  • 14
  • 8
  • 4
    For those reading this super constructor is now deprecated. super(AppUnderTest.class) should be sufficient – IcedDante Nov 11 '13 at 01:13
9

I had the same problem. The reason was the constructor - it somehow had a parameter like this:

public SearchActivityTest(Class<SearchActivity> activityClass) {
    super("com.example.app", SearchActivity.class);
}

But it should have no parameters like this:

public SearchActivityTest() {
    super("com.example.app", SearchActivity.class);
}

It worked for me.

Stan Sidel
  • 479
  • 6
  • 18