update unit test support in build files

This commit is contained in:
Vincent Breitmoser 2014-05-12 22:18:11 +02:00
parent 4a6aaf1e83
commit e7fa124108
5 changed files with 36 additions and 105 deletions

View File

@ -1,9 +1,11 @@
apply plugin: 'android' apply plugin: 'android'
apply plugin: 'android-test'
sourceSets { sourceSets {
testLocal { androidTest {
java.srcDir file('src/test/java') java.srcDir file('src/test/java')
resources.srcDir file('src/test/resources') // configure the set of classes for JUnit tests
// include '**/*Test.class'
} }
} }
@ -23,24 +25,25 @@ dependencies {
compile project(':extern:spongycastle:prov') compile project(':extern:spongycastle:prov')
compile project(':extern:AppMsg:library') compile project(':extern:AppMsg:library')
// Dependencies for the `testLocal` task, make sure to list all your global dependencies here as well // Dependencies for the `instrumentTest` task, make sure to list all your global dependencies here as well
testLocalCompile 'junit:junit:4.11' androidTestCompile 'junit:junit:4.10'
testLocalCompile 'org.robolectric:robolectric:2.2' androidTestCompile 'org.robolectric:robolectric:2.1.+'
testLocalCompile 'com.google.android:android:4.1.1.4' androidTestCompile 'com.squareup:fest-android:1.0.+'
testLocalCompile 'com.android.support:support-v4:19.1.0' androidTestCompile 'com.google.android:android:4.1.1.4'
testLocalCompile 'com.android.support:appcompat-v7:19.1.0' androidTestCompile 'com.android.support:support-v4:19.1.0'
testLocalCompile project(':extern:openpgp-api-lib') androidTestCompile 'com.android.support:appcompat-v7:19.1.0'
testLocalCompile project(':extern:openkeychain-api-lib') androidTestCompile project(':extern:openpgp-api-lib')
testLocalCompile project(':extern:html-textview') androidTestCompile project(':extern:openkeychain-api-lib')
testLocalCompile project(':extern:StickyListHeaders:library') androidTestCompile project(':extern:html-textview')
testLocalCompile project(':extern:AndroidBootstrap:AndroidBootstrap') androidTestCompile project(':extern:StickyListHeaders:library')
testLocalCompile project(':extern:zxing-qr-code') androidTestCompile project(':extern:AndroidBootstrap:AndroidBootstrap')
testLocalCompile project(':extern:zxing-android-integration') androidTestCompile project(':extern:zxing-qr-code')
testLocalCompile project(':extern:spongycastle:core') androidTestCompile project(':extern:zxing-android-integration')
testLocalCompile project(':extern:spongycastle:pg') androidTestCompile project(':extern:spongycastle:core')
testLocalCompile project(':extern:spongycastle:pkix') androidTestCompile project(':extern:spongycastle:pg')
testLocalCompile project(':extern:spongycastle:prov') androidTestCompile project(':extern:spongycastle:pkix')
testLocalCompile project(':extern:AppMsg:library') androidTestCompile project(':extern:spongycastle:prov')
androidTestCompile project(':extern:AppMsg:library')
} }
android { android {
@ -92,20 +95,6 @@ android {
} }
} }
task localTest(type: Test, dependsOn: assemble) {
testClassesDir = sourceSets.testLocal.output.classesDir
android.sourceSets.main.java.srcDirs.each { dir ->
def buildDir = dir.getAbsolutePath().split("\\" + File.separator)
buildDir = (buildDir[0..(buildDir.length - 4)] + ['build', 'classes', 'debug']).join("\\" + File.separator)
sourceSets.testLocal.compileClasspath += files(buildDir)
sourceSets.testLocal.runtimeClasspath += files(buildDir)
}
classpath = sourceSets.testLocal.runtimeClasspath
}
// NOTE: This disables Lint! // NOTE: This disables Lint!
tasks.whenTaskAdded { task -> tasks.whenTaskAdded { task ->
if (task.name.equals("lint")) { if (task.name.equals("lint")) {
@ -113,5 +102,3 @@ tasks.whenTaskAdded { task ->
} }
} }
// NOTE: tests disabled!
//check.dependsOn localTest

View File

@ -0,0 +1,12 @@
package tests;
import org.junit.Assert;
import org.junit.Test;
public class SomeTest {
@Test
public void willFail() {
// stub
// Assert.assertThat();
}
}

View File

@ -1,46 +0,0 @@
package org.sufficientlysecure.keychain;
import org.junit.Before;
import org.junit.After;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.robolectric.Robolectric;
import org.sufficientlysecure.keychain.pgp.*;
import org.spongycastle.openpgp.*;
@RunWith(RobolectricGradleTestRunner.class)
public class PgpKeyOperationTest {
PGPSecretKey key;
@Before
public void setUp() throws Exception {
/* Input */
int algorithm = Id.choice.algorithm.dsa;
String passphrase = "swag";
int keysize = 2048;
boolean masterKey = true;
/* Operation */
PgpKeyOperation keyOperations = new PgpKeyOperation(null);
key = keyOperations.createKey(algorithm, keysize, passphrase, masterKey);
System.err.println("initialized, test key: " + PgpKeyHelper.convertKeyIdToHex(key.getKeyID()));
}
@After
public void tearDown() {
}
@Test
public void createTest() {
}
@Test
public void certifyKey() {
System.err.println("swag");
}
}

View File

@ -1,23 +0,0 @@
package org.sufficientlysecure.keychain;
import org.junit.runners.model.InitializationError;
import org.robolectric.AndroidManifest;
import org.robolectric.RobolectricTestRunner;
import org.robolectric.annotation.Config;
import org.robolectric.res.Fs;
import org.robolectric.res.FsFile;
import org.sufficientlysecure.keychain.KeychainApplication;
public class RobolectricGradleTestRunner extends RobolectricTestRunner {
public RobolectricGradleTestRunner(Class<?> testClass) throws InitializationError {
super(testClass);
}
@Override protected AndroidManifest getAppManifest(Config config) {
String myAppPath = KeychainApplication.class.getProtectionDomain().getCodeSource().getLocation().getPath();
String manifestPath = myAppPath + "../../../src/main/AndroidManifest.xml";
return createAppManifest(Fs.fileFromPath(manifestPath));
}
}

View File

@ -5,6 +5,7 @@ buildscript {
dependencies { dependencies {
classpath 'com.android.tools.build:gradle:0.10.0' classpath 'com.android.tools.build:gradle:0.10.0'
classpath 'org.robolectric.gradle:gradle-android-test-plugin:0.9.+'
} }
} }