我正在尝试在AndroidStudio中使用Robolectric和AssertJ进行一些基本的单元测试。我已经使用build.gradle
方法将Robolectric,AssertJ和JUnit添加到我的testCompile
文件中。但是,当我尝试实际运行单元测试时,我继续收到错误说"无法找到方法testCompile()"。
我已尝试将testCompile
方法替换为提及here的androidTestCompile
,但是后来找不到任何Robolectric,AssertJ和JUnit类都可以导入{{1} } .class。
我还创建了一个非常基本的示例应用程序,看看我是否可以让Robolectric工作。使用那个令我困惑的应用程序,一切都运行正常,可以找到该项目here。
非常感谢一些帮助,谢谢。
这是日志输出:
SampleTest.java
这是我的测试类:
Testing started at 4:45 PM ...
4:45:18 PM: Executing external tasks 'cleanTest test --tests com.master.SampleTest'...
FAILURE: Build failed with an exception.
* Where:
Build file '/Users/dthacker/Code/Repos/Default/CoreV2/a-fp-core/build.gradle' line: 45
* What went wrong:
A problem occurred evaluating project ':a-fp-core'.
> Could not find method testCompile() for arguments [org.robolectric:robolectric:3.0-rc2] on project ':a-fp-core'.
* Try:
Run with --stacktrace option to get the stack trace. Run with --info or --debug option to get more log output.
BUILD FAILED
Total time: 2.163 secs
Could not find method testCompile() for arguments [org.robolectric:robolectric:3.0-rc2] on project ':a-fp-core'.
这是a-fp-core build.gradle文件:
import org.junit.Test;
import org.junit.runner.RunWith;
import org.robolectric.RobolectricGradleTestRunner;
import org.robolectric.annotation.Config;
import static org.assertj.core.api.Assertions.assertThat;
@RunWith(RobolectricGradleTestRunner.class)
@Config(constants = BuildConfig.class)
public class SampleTest {
@Test
public void sampleTest() throws Exception {
String testString = "hey";
assertThat(testString).isNotNull();
}
}
文件夹结构:
}
我在Android Studio中的测试:
答案 0 :(得分:3)
我可以告诉您,这些内容来自基于您的sourceSets
基于Eclipse的项目:
sourceSets {
main {
manifest.srcFile 'src/main/AndroidManifest.xml'
java.srcDirs = ['src/main/java']
resources.srcDirs = ['src/main/java']
aidl.srcDirs = ['src/main/java']
renderscript.srcDirs = ['src/main/java']
res.srcDirs = ['src/main/res']
assets.srcDirs = ['src/main/assets']
}
}
我建议删除您的sourceSets
并使用Android Studio / Intellij项目结构:src/main, src/test
。
Unit
运行IDE
测试:确保已开启“单元测试”。
这允许您在IDE中运行单元测试。请按照官方Android文档中的说明进行操作:
来源:http://tools.android.com/tech-docs/unit-testing-support
Unit
测试: gradlew test