我在64位Windows 7上使用Android Studio.我是Android Studio(或任何Intelij IDE)的noobie.
我下载并安装了Ruby 1.9.3,Ruby DevKit和calabash-android,我可以使用命令行在我的Android应用程序上成功运行Cucumber测试(calabash-android run)
我还设法为Android Studio安装了Cucumber插件,这样我的功能文件就可以从自动完成等方面受益.
我有以下问题:
我可以安装Ruby插件(RubyMine?),以便我可以为我的测试编写步骤定义吗?如果是这样,我听说人们可以调试Cucumber测试:这可以在Android Studio for Android应用程序中实现吗?
我可以从Android Studio为Android应用启动calabash测试吗?如果是这样,我该怎么办呢?
我可以在Gradle构建的Android应用程序中使用calabash集成(自动)测试吗?如果是这样,我该怎么办呢?
谢谢!
更新:
我附上了一个自定义的gradle Plugin<Project>(请参阅我编写的下面的凹槽代码,以获得运行calabash-android测试的基本支持.
这些手动步骤仍然是必要的:
- 安装Ruby 1.9.x及其Devkit,安装calabash-android gem等.
- 使用android gradle插件(手动或自动)构建适当的(风味的)APK
在应用程序中build.gradle,添加apply plugin: 'calabash'现在可以工作,它允许构建运行功能文件作为calabash测试.
它检查可用的产品口味(构建口味)并添加适当的葫芦相关任务(例如calabashDebug或calabashFlavor1Release等).
下面是实现我的'calabash'插件的groovy文件(目前仅适用于Windows):
package com.mediaarc.gradle.plugins
import org.gradle.api.*
import org.gradle.api.plugins.*
import org.gradle.api.tasks.*
class CalabashPlugin implements Plugin<Project> {
void apply(Project project) {
project.extensions.create("calabash", CalabashPluginExtension)
if (!project.android) {
throw new IllegalStateException("Android plugin is not configured.")
}
project.android.applicationVariants.each { variant ->
final …Run Code Online (Sandbox Code Playgroud) 我有一个问题(de)序列化我没有定义的JSON.
以下是一些解释该问题的代码和JSON:
码:
public static class Base {
public String klass = "base";
}
public static class SubBase extends Base {
}
public static class Sub1 extends SubBase {
public Sub1() {
klass = "Sub1";
}
}
public static class Sub2 extends SubBase {
public Sub2() {
klass = "Sub2";
}
}
public static class Holder {
@JsonTypeInfo(use=JsonTypeInfo.Id.NAME, include=JsonTypeInfo.As.WRAPPER_ARRAY, property="type")
@JsonSubTypes({@JsonSubTypes.Type (name = "sub1", value = Sub1.class),@JsonSubTypes.Type(name = "sub2", value = Sub2.class)})
public List<Base> items = new ArrayList<Base>();
}
Holder …Run Code Online (Sandbox Code Playgroud)