我是gradle和Android Studio的新手,我正在尝试弄清楚如何运行测试。我遵循了http://tools . Android . com/tech-docs/new-build-system/user-guide # TOC-Testing中的说明,我可以运行仪器测试,但只能执行< code >/grad Lew connectedInstrumentTest 。我很难理解其他的< code>check任务,它们不会在我的应用程序中执行任何代码。这就是<代码>。/gradlew任务打印
...
Verification tasks
------------------
check - Runs all checks.
connectedCheck - Runs all device checks on currently connected devices.
connectedInstrumentTest - Installs and runs the tests for Build 'Debug' on connected devices.
deviceCheck - Runs all device checks using Device Providers and Test Servers.
...
如果<code>check
还有,我如何运行不需要Android环境的测试?我应该把它们放在/test/java下吗?如果是,我应该运行什么命令来执行它们?
如果这些问题看起来很明显,很抱歉,但我只是在文档中找不到这些问题的任何答案。
非常感谢。
编辑:
所以我在这里取得了一些进展。看起来check
没有做任何事情。(现在)由开发人员将依赖任务添加到check
以运行一些JUnit测试。您将需要创建一个任务,让它找到源,编译它们并运行它们。
connectedCheck
和connectedInstrumentTest
:在设备中运行instrumentationTest。(这一直有效)。
deviceCheck
:正如文档所说,这对于持续集成测试非常有用。
检查应该运行检测测试 IIRC.关于运行非Android测试。目前,android-gradle插件不支持它。但是,我制作了一个插件来运行带有robolectric的JUnit测试,因此您不需要仪器测试。这是链接:android-unit-test
>
如果check运行所有检查...它不应该运行我从ConnectedInstrumentTest获得的那些吗?您可以必须将ConnectedInstrumentTest任务作为依赖项运行以检查任务。
check.dependson connectedInstrumentTest
如何运行不需要 Android 环境的测试?
对于Android项目,我们可以讨论3种类型的测试
朱尼特测试
我们不能使用普通的jUnit测试来检查android相关的类。我们可以做的是将核心java类分离到java库项目并将该依赖项添加到android项目。
机器人测试
我们可以使用机器人测试在模拟器外部运行单元测试。这使得使用 CI 服务器快速轻松地配置测试。
为了运行robolectric测试,我们使用gradle android测试插件。它清楚地描述了如何使用该插件。
项目结构
为了使用这个插件,我们必须使用默认的文件夹结构。我们必须使用名为“test”的文件夹来保存机器人电气测试:
MyProject/
| settings.gradle
| build.gradle
- app/
| build.gradle
-main
-java
-com.example.calculator
-test
-java
-com.example.calculator.robolectrictests
生成文件是
buildscript {
repositories {
mavenCentral()
maven {
url 'https://oss.sonatype.org/content/repositories/snapshots/'
}
}
}
dependencies {
classpath 'com.android.tools.build:gradle:0.6.+'
classpath 'com.squareup.gradle:gradle-android-test-plugin:0.9.1-SNAPSHOT'
}
apply plugin: 'android'
apply plugin: 'android-test'
repositories {
mavenCentral()
}
android {
compileSdkVersion 19
buildToolsVersion "19.0.0"
defaultConfig {
minSdkVersion 8
targetSdkVersion 19
}
}
dependencies {
compile 'com.android.support:appcompat-v7:+'
testCompile 'junit:junit:4.10'
testCompile 'org.robolectric:robolectric:2.1.+'
testCompile 'com.squareup:fest-android:1.0.+'
}
此测试任务将与检查任务一起自动执行。
仪器测试
正如您提到的,这需要使用android模拟器。这使得测试速度变慢,这意味着它们不是进行TDD的好方法。
我们可以使用机器人测试作为TDD过程中的单元测试。仪器测试可以作为TDD中的集成测试。
我有一个如下结构的android模块: 我在模块的build.gradle文件中定义了两个产品风味,称为flavor1和flavor2,位于文件夹src/main/assets/flavor1/下,而src/main/assets/flavor2是完全不同的动态库,例如:libhelper.so。它们适用于不同的产品风味。 我的意图是在gradle构建过程中,根据产品风格将不同的动态库复制到jni
22.13.5.测试检测 测试任务检测哪些类是通过检查编译测试类的测试类。默认情况下它会扫描所有.calss文件.可以自定义包含/排除哪些类需不要要被扫描.所使用不同的测试框架(JUnit/ TestNG)时测试类检测使用不同的标准。 当使用JUnit,我们扫描的JUnit3和JUnit4的测试类。如果任一下列条件匹配,类被认为是一个JUnit测试类: 类或父类集成自TestCase或Groovy
单元测试是用来校验程序的正确性的,然而,程序能正常运行后,往往还需要测试程序(一部分)的执行速度,这时,f就需要用到性能测试。 通常来讲,所谓性能测试,指的是测量程序运行的速度,即运行一次要多少时间(通常是执行多次求平均值)。Rust 竟然连这个特性都集成在语言基础特性中,真的是一门很重视工程性的语言。 下面直接说明如何使用。 cargo new benchit cd benchit 编辑 src
程序测试是一种找到缺陷的有效方式,但是它对证明没有缺陷却无能为力。 Edsger W. Dijkstra, “The Humble Programmer” (1972) 作为软件工程质量保障体系的重要一环,测试是应该引起我们充分注意并重视的事情。前面说过,Rust 语言的设计集成了最近十多年中总结出来的大量最佳工程实践,而对测试的原生集成也正体现了这一点。下面来看 Rust 是怎么设计测试特性的。
本章讲解 Rust 中内建的测试与评测相关知识。 测试 (testing) 评测 (benchmark)
import counter from './counter'; describe('counter reducers', () => { it('should handle initial state', () => {
下面的示例会为您测试Redux应用程序打下坚实的基础。
就像 会编译代码并运行生成的二进制文件一样,cargo test 在测试模式下编译代码并运行生成的测试二进制文件。可以指定命令行参数来改变 cargo test 的默认行为。例如,cargo test 生成的二进制文件的默认行为是并行的运行所有测试,并捕获测试运行过程中产生的输出避免他们被显示出来,使得阅读测试结果相关的内容变得更容易。 这些选项的一部分可以传递给 cargo test,而另一些则