我必须重新启动 IDE 到 运行 测试
I have to restart IDE to run tests
当 运行 直接在 IDE 中进行单个测试时 Android Studio 2.2 出现奇怪的错误 - 我将有 "No tests found" 或 运行 我的先前编译的测试。
示例:
@Test
fun testyTest() {
}
我将创建此测试,并获取 "No tests found"。于是我重启,发现test了!显然,上面的测试通过了,因为它是空的。接下来,我希望我的测试失败。所以我手动抛出异常并在下面添加一行代码。
@Test
fun testyTest() {
throw RuntimeException()
}
现在我重新编译,这个测试也通过了,因为 IntelliJ 出于某种原因缓存了以前的测试并重新运行s。要使此测试正常失败 - 我必须重新启动 IDE.
有人知道这是怎么回事吗?注意 - 我在这个项目中大量使用 Kotlin。
编辑 2:这是 android library 项目中的 JVM 测试(非 android、src/test/java
)。
编辑:这是一个完整的测试 class
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 重建后,测试工作正常。
我猜你在项目中使用了 gradle?我遇到了完全相同的问题,解决方案是使用 gradle 执行测试(在 gradle 任务列表中)而不是使用菜单(右键单击测试文件和 运行 测试).
我在 JetBrains IntelliJ 错误跟踪系统中找到了这个错误描述。这是 URL:
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 测试。
已找到解决方法...只有当存在变体选择冲突时才会出现此问题。消除冲突解决了问题。
当 运行 直接在 IDE 中进行单个测试时 Android Studio 2.2 出现奇怪的错误 - 我将有 "No tests found" 或 运行 我的先前编译的测试。
示例:
@Test
fun testyTest() {
}
我将创建此测试,并获取 "No tests found"。于是我重启,发现test了!显然,上面的测试通过了,因为它是空的。接下来,我希望我的测试失败。所以我手动抛出异常并在下面添加一行代码。
@Test
fun testyTest() {
throw RuntimeException()
}
现在我重新编译,这个测试也通过了,因为 IntelliJ 出于某种原因缓存了以前的测试并重新运行s。要使此测试正常失败 - 我必须重新启动 IDE.
有人知道这是怎么回事吗?注意 - 我在这个项目中大量使用 Kotlin。
编辑 2:这是 android library 项目中的 JVM 测试(非 android、src/test/java
)。
编辑:这是一个完整的测试 class
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 重建后,测试工作正常。
我猜你在项目中使用了 gradle?我遇到了完全相同的问题,解决方案是使用 gradle 执行测试(在 gradle 任务列表中)而不是使用菜单(右键单击测试文件和 运行 测试).
我在 JetBrains IntelliJ 错误跟踪系统中找到了这个错误描述。这是 URL:
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 测试。
已找到解决方法...只有当存在变体选择冲突时才会出现此问题。消除冲突解决了问题。