Android Studio 3.0 gradle 3.0.0-beta2, ломает Kotlin Unit Test Coverage?

У меня есть простые классы Котлина, как показано ниже

class MyClass { fun justSayHello(yes: Boolean): String { if (yes) { return "Hello" } else { return "Sorry" } } } 

У меня есть мой тест (написанный на Java здесь, также может быть в Котлине)

 public class MyClassTest { private MyClass myClass = new MyClass(); @Test public void testFirst() { myClass.justSayHello(true); } @Test public void testSecond() { myClass.justSayHello(false); } } 

Когда я запускаю тест с Coverage в Android Studio 3.0 Beta-2, используя classpath 'com.android.tools.build:gradle:3.0.0-beta2' , о нем не сообщается.

Но когда я запускаю тест, используя classpath 'com.android.tools.build:gradle:2.3.3' , сообщается о 100% охвате.

Когда я меняю исходный код на Java:

 public class MyClass { public String justSayHello(boolean yes) { if (yes) { return "Hello"; } else { return "Sorry"; } } } 

Он отлично работает как для инструментов построения градиентов

Мне кажется, что 'com.android.tools.build:gradle:3.0.0-beta2' имеет разбитое тестовое покрытие для Kotlin.

Я что-то пропустил? Есть ли у меня обходной путь, чтобы получить тестовое покрытие в Котлине?

В случае, если кто-то все еще ищет решение, добавляя задачу градиента, чтобы скопировать случаи из каталога tmp в каталог, в котором выглядит выход покрытия, помогает с этой проблемой в качестве обходного пути.

Например, добавьте copyTestClasses в файл модуля gradle

 task copyTestClasses(type: Copy) { from "build/tmp/kotlin-classes/debug" into "build/intermediates/classes/debug" } 

А затем настройте свои настройки по умолчанию для запуска задачи градиента перед запуском тестов Пример задания градиента

Это может помочь найти оба каталога в вашем проекте вручную, прежде чем пытаться указывать на них с помощью gradle, чтобы убедиться, что вы указываете на нужное место (ароматы изменят каталоги, которые вам нужно указать)

Intereting Posts
Kotlin – nonnull getter для поля с нулевым значением Невозможно разрешить моему приложению использовать обратную связь над другими правами на приложения Конструктор ненулевой перегрузки Невозможно преобразовать в коллекцию в котлин Получение исходного ответа HTML / JSON на ошибку с помощью Retrofit 2 и Kotlin Поддержка Lost Kotlin в Intellij Idea 14.1 Spring Boot ThymeLeaf и Kotlin – значение флажка не передается контроллеру? JsonProperty не работает при включенном разрешении Ошибка использования IntDef, определенного в Kotlin при использовании в Java Работа с @Qualifier в функциях Котлина Kotlin / Java, строковый массив еще не инициализирован при вызове метода Как открыть ссылки, не связанные с URL веб-браузера в браузере из приложения Рефакторинг кода Котлина Android WebView прыгает вверху каждого обновления страницы (?) Как создать бесконечный интервал Наблюдаемый, который будет генерировать новый объект каждый временной интервал?