Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 631447c6 authored by Brett Chabot's avatar Brett Chabot Committed by Android (Google) Code Review
Browse files

Merge "Add test runner log when test case class is not loaded."

parents 88b299b1 bb469fe3
Loading
Loading
Loading
Loading
+7 −1
Original line number Diff line number Diff line
@@ -46,6 +46,8 @@ import java.util.TreeSet;
 */
public class TestGrouping {

    private static final String LOG_TAG = "TestGrouping";

    SortedSet<Class<? extends TestCase>> testCaseClasses;

    public static final Comparator<Class<? extends TestCase>> SORT_BY_SIMPLE_NAME
@@ -114,7 +116,7 @@ public class TestGrouping {
        for (String packageName : packageNames) {
            List<Class<? extends TestCase>> addedClasses = testCaseClassesInPackage(packageName);
            if (addedClasses.isEmpty()) {
                Log.w("TestGrouping", "Invalid Package: '" + packageName
                Log.w(LOG_TAG, "Invalid Package: '" + packageName
                        + "' could not be found or has no tests");
            }
            testCaseClasses.addAll(addedClasses);
@@ -234,6 +236,10 @@ public class TestGrouping {
                    }
                }
            }
            Log.i(LOG_TAG, String.format(
                    "TestCase class %s is missing a public constructor with no parameters " +
                    "or a single String parameter - skipping",
                    aClass.getName()));
            return false;
        }
    }
+47 −0
Original line number Diff line number Diff line
/*
 * Copyright (C) 2010 The Android Open Source Project
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *      http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */

package android.test.suitebuilder;

import java.util.List;

import junit.framework.TestCase;

/**
 * Unit tests for {@link TestGrouping}
 */
public class TestGroupingTest extends TestCase {

    private TestGrouping mGrouping;

    @Override
    protected void setUp() throws Exception {
        super.setUp();
        mGrouping = new TestGrouping(TestGrouping.SORT_BY_SIMPLE_NAME);
    }

    /**
     * Verifies that TestCases with no public constructor are not loaded.
     * Relies on fixture classes in android.test.suitebuilder.examples.constructor
     */
    public void testGetTests_noPublicConstructor() {
        mGrouping.addPackagesRecursive("android.test.suitebuilder.examples.constructor");
        List<TestMethod> tests = mGrouping.getTests();
        // only the PublicConstructorTest's test method should be present
        assertEquals(1, tests.size());
        assertEquals("testPublicConstructor", tests.get(0).getName());
    }
}
+35 −0
Original line number Diff line number Diff line
/*
 * Copyright (C) 2010 The Android Open Source Project
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *      http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */

package android.test.suitebuilder.examples.constructor;

import junit.framework.TestCase;

/**
 * A {@link TestCase} which should not be loaded since it has non-public constructors with no args.
 */
public class NoPublicConstructorTest extends TestCase {

    NoPublicConstructorTest() {
    }

    public NoPublicConstructorTest(String foo, String foo2) {
    }

    public void testNotRun() {
        fail("method in NoPublicConstructorTest run unexpectedly");
    }
}
+33 −0
Original line number Diff line number Diff line
/*
 * Copyright (C) 2010 The Android Open Source Project
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *      http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */

package android.test.suitebuilder.examples.constructor;

import junit.framework.TestCase;

/**
 * A protected constructor test case that should not be loaded.
 */
public class ProtectedConstructorTest extends TestCase {

    protected ProtectedConstructorTest() {
    }

    public void testNotRun() {
        fail("method in ProtectedConstructorTest run unexpectedly");
    }

}
+28 −0
Original line number Diff line number Diff line
/*
 * Copyright (C) 2010 The Android Open Source Project
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *      http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */

package android.test.suitebuilder.examples.constructor;

import junit.framework.TestCase;

/**
 * A public constructor test case that should be loaded.
 */
public class PublicConstructorTest extends TestCase {

    public void testPublicConstructor() {
    }
}