刚刚下载了基于Intellij Idea的Android Studio.
如何创建测试?
我注意到有一个创建测试模块的选项,但这似乎没有做任何事情,只用src创建一个新项目
我也尝试按热键CTRL + AlT + T,它允许在现有类上创建单元测试,但它似乎想将它放在当前项目中.当然这对TDD没有帮助
有没有人有这方面的经验?
我正在试图找出IntelliJ/Android报告"空测试套件"的原因.我有一个带有两个IntelliJ模块的小项目(Eclipse中的"Projects").Unit测试模块有自己的AndroidManifest.xml,我在底部粘贴了它.我试图运行ActivityUnitTestCase,因为测试将取决于对象Context.
主模块的包名称是nilzor.myapp.测试模块的pacakge名称是nilzor.myapp.tests
为什么测试运行器没有检测到testBlah()-method作为测试?
<?xml version="1.0" encoding="utf-8"?>
<!-- package name must be unique so suffix with "tests" so package loader doesn't ignore us -->
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="nilzor.myapp.tests"
android:versionCode="1"
android:versionName="1.0">
<!-- We add an application tag here just so that we can indicate that
this package needs to link against the android.test library,
which is needed when building test cases. -->
<application>
<uses-library android:name="android.test.runner"/>
</application>
<!--
This declares that this application uses the …Run Code Online (Sandbox Code Playgroud) 我创建了一个扩展AndroidTestCase的示例测试用例.当我运行测试用例时,它会说错误
Running tests
Test running startedTest running failed:
Instrumentation run failed due to 'java.lang.RuntimeException'
Empty test suite.
Run Code Online (Sandbox Code Playgroud)
测试用例
import android.test.AndroidTestCase;
import android.test.suitebuilder.annotation.SmallTest;
import static org.junit.Assert.assertEquals;
import org.junit.AfterClass;
import org.junit.BeforeClass;
import org.junit.Test;
import java.lang.Exception;
import java.lang.Override;
public class DateFormatTest extends AndroidTestCase{
@Override
protected void setUp() throws Exception {
super.setUp();
}
@Override
protected void tearDown() throws Exception {
super.tearDown();
}
public DateFormatTest(){
super(DateFormatTest.class);
}
@SmallTest
public void testMultiply() {
assertEquals("10 x 5 must be 50", 50, 10*5);
}
}
Run Code Online (Sandbox Code Playgroud) 我的Android工作室中有一个测试套件,它具有以下dir结构:
-MainProject
-src
--com
--tests
--java.xx.xxx.xx.test
Run Code Online (Sandbox Code Playgroud)
在我的AndroidManifest中,我有以下内容:
<instrumentation
android:name="android.test.InstrumentationTestRunner"
android:targetPackage="tests.java.xxx.xxx.xxx.test" />
Run Code Online (Sandbox Code Playgroud)
当我使用:从命令行运行我的测试时./gradlew connectedInstrumentTest,我得到:
Tests on Nexus 5 - 4.4.2 failed: Instrumentation run failed due to 'java.lang.ClassNotFoundException'
Run Code Online (Sandbox Code Playgroud)
当我从Android Studio内部运行测试时,我得到:
Running tests
Test running startedTest running failed: Unable to find instrumentation info for: ComponentInfo{tests.xxx.xxx.xxx.xxx.test/android.test.InstrumentationTestRunner}
Empty test suite.
Run Code Online (Sandbox Code Playgroud)
我还在build.gradle文件的defaultConfig中指定了testPackageName.我在Ubuntu 12.0.4上运行Android Studio 0.4.6.
有任何想法吗?
我设法让gradle cC工作.我的测试打印出来并记录一行文字.
grep -r text * fails.
Run Code Online (Sandbox Code Playgroud)
哪里是system.out和logging输出?
谢谢
编辑:我找到了单元测试的输出(它在.../app/build/test-results /中).但是对方仍然没有运气.
有没有办法以某种方式保存仪表化测试的输出?