Модульный тест Android дает неверный результат

Когда я запускаю модульный тест для нового созданного проекта, он показывает мне неверный результат (говорит, что все тесты пройдены).

Если вы видите на изображении ниже 4 ожидается, а 6+2 точно не 4.

введите здесь описание изображения

Теперь, когда я запускаю тот же тест из правого меню Gradle. Это показывает мне правильный результат, что тест не пройден.

введите здесь описание изображения

Я сделал что-то не так или это ошибка студии Android?


Редактировать

Запустить образ конфигурации

введите здесь описание изображения


comment
проверьте конфигурации запуска, я думаю, что тест на самом деле не выполняется   -  person conversation.16    schedule 09.01.2017
comment
@TobiAdeyinka может указать, какую конфигурацию?   -  person N J    schedule 09.01.2017
comment
как у вас проходит тест?   -  person conversation.16    schedule 09.01.2017
comment
В первом сценарии я щелкаю маленький значок воспроизведения слева, чтобы проверить имя.   -  person N J    schedule 09.01.2017
comment
Это не должно быть проблемой, просто проверьте правый верхний угол IDE рядом с кнопкой запуска, там должно быть раскрывающееся меню, содержащее «изменить конфигурации».   -  person conversation.16    schedule 09.01.2017
comment
это должно быть «JUnit» вместо «Android JUnit» в «Выполнить конфигурацию», какую версию AndroidStudio вы используете, я не вижу возможности создать «Android JUnit»   -  person WenChao    schedule 11.01.2017
comment
@WenChao да, нет опции Junit, я использую Android studio 2.3 beta1   -  person N J    schedule 11.01.2017
comment
Я думаю, что в первом случае это даже не запуск теста! Попробуйте выполнить Log.e() и посмотрите, сможете ли вы найти его в Logcat.   -  person Sufian    schedule 11.01.2017


Ответы (1)


Вам нужно добавить параметр -ea в поле «Параметры виртуальной машины» в вашем третьем образе. Это необходимо для включения функции утверждения для JVM. Без этого -ea JVM просто игнорирует оператор утверждения. Когда вы запускаете тест с помощью gradle, он использует конфигурацию по умолчанию, поэтому ваш тест был выполнен правильно.

person Lam    schedule 09.01.2017
comment
на первом изображении, в навигаторе результатов теста, чуть выше Все тесты пройдены, если нажать зеленую кнопку ОК, то показывает, какие тесты выполнялись? Игнорируйте -ea, в вашем случае это не имеет значения :) - person Lam; 10.01.2017
comment
первый запуск теста после открытия студии Android говорит, что тест не найден - person N J; 10.01.2017
comment
Если файл ExampleTestClass.class не был создан в папке build/xxx/classes (выполните поиск всех файлов в папке сборки). Если это так, ваша тестовая папка каким-то образом не была распознана как исходная папка. Взгляните на файл app.iml в вашем проекте (‹sourceFolder url=file://$MODULE_DIR$/src/test/java isTestSource=true /›). Если вам повезет, удалите файл и снова откройте/импортируйте проект. Или вы можете найти способ включить тестовую папку в качестве исходной папки. - person Lam; 10.01.2017
comment
не работает сохранение результата предыдущей задачи Gradle. - person N J; 10.01.2017
comment
удалите файл класса, или измените какой-либо код, или выполните чистую сборку, чтобы заставить его собраться снова. Не запускайте тест Gradle, теперь вы видите сгенерированный файл класса? - person Lam; 10.01.2017
comment
Теперь он говорит Class not found: "com.xxx.xxx.network.UrlConstantTest"Empty test suite. - person N J; 10.01.2017
comment
нашел это похожее на вашу проблему, надеюсь, это поможет: stackoverflow.com/questions/38056901/ - person Lam; 10.01.2017