我必须重新启动IDE才能运行测试
当在IDE中直接运行单个测试时,Android Studio 2.2出现奇怪的错误 – 我要么“没有找到测试”,要么运行我之前编译的测试。
例:
@Test fun testyTest() { }
我将创建这个测试,并得到“没有找到测试”。 所以我重新启动,并测试被发现! 显然,上面的测试通过了,因为它是空的。 接下来,我想让我的测试失败。 所以我手动抛出一个异常,并在下面添加一行代码。
@Test fun testyTest() { throw RuntimeException() }
现在我重新编译,而且这个测试也通过了,因为IntelliJ由于某种原因已经缓存了以前的测试并重新执行了。 为了使这个测试正常失败 – 我必须重新启动IDE。
任何人都知道发生了什么事? 注意 – 我在这个项目中使用了Kotlin。
编辑2:这是一个Android 库项目中的JVM测试(非android, src/test/java
)。
编辑:这是一个完整的测试类
package com.example.zak import org.junit.Before import org.junit.Test class ExampleTest { @Before fun setUp() { } @Test fun testyTest() { //throw RuntimeException() } }
找到解决方案…只有在发生变体选择冲突时才会出现该问题。 消除冲突解决了这个问题。
检查你是否有所有这些依赖:
dependencies { compile "org.jetbrains.kotlin:kotlin-stdlib:$kotlin_version" testCompile 'junit:junit:4.11' testCompile "org.jetbrains.kotlin:kotlin-test-junit:$kotlin_version" }
同样当你使用Kotlin
请在File -> Preferences
完全禁用Instant Run
。
编辑:你在谈论库中的测试 – modules
和project
有这些依赖和适当的配置。
它看起来像Gradle重建后,测试工作正常。
我在JetBrains IntelliJ错误跟踪系统中发现了这个错误描述。 这是网址:
https://youtrack.jetbrains.com/issue/IDEA-149275
它讨论了对可能影响Junit测试执行的类加载进行的更改。 建议通过在options.xml配置文件中添加一行来解决这个问题。 以下是Windows盒子的一个示例解决方法 – 根据您的平台的需要进行更改。 下面的Android版本是当前的2.2版本:
1)退出Android工作室
2)导航到您的Android版本的config / options目录:
例如C:\Users\YourNameHere\.AndroidStudio2.2\config\options
3)然后在options.xml文件的组件块中添加“ <property name="idea.dynamic.classpath.jar" value="false" />
”行:
<component name="PropertiesComponent"> <property name="idea.dynamic.classpath.jar" value="false" />
启动Android Studio并尝试运行本地Junit测试。
我想你在你的项目中使用gradle? 我有完全相同的问题,解决方案是使用gradle来执行测试(在gradle任务列表中)而不是使用菜单(右键单击测试文件并运行测试)。
- 错误:执行任务’:app:clean’失败。 无法删除文件
- Android Studio执行失败的任务compilefreeDebugKotlin
- Android Studio 3 Kotlin版本
- 错误:执行任务':app:javaPreCompileDebug'失败。 > java.io.IOException:无法删除annotationProcessors.json
- 如何在Android Studio中附加Kotlin的源代码?
- 在布局中使用自定义Kotlin视图“无法找到以下类”
- 双Xeon工作站上的Android Studio
- 使用意向操作在Android Studio中创建Kotlin类
- Kotlin:我怎样才能让Android Studio在课堂底层实现界面的功能