0

自分のlibに対してJUnitテストを実行したいのですが、テストを開始する前に必要な権限をすべて与えてもらいたいと思います。例えば、テスト)。JUnitテスト用にAndroid Marshmallowのアクセス権を要求する方法

私はgradleにタスクを追加してそれを作成し、cmdから実行する方法を知っています。うまくいきます。しかし、私はのIDEを使ってテストを実行したときに、ユーザーに尋ねる必要があります(または自動的に行う必要があります)。

MainActivityがすべてのテストで始まるわけではないので、テストアプリケーションのMainActivity.onCreate()に許可要求を追加しようとしましたが、運がありません。

誰にもアイデアはありますか?

また、実行コンフィギュレーションにgradle grantタスクを追加することについてはお話してください。それは働いていますが、使用できなくなり、より統一されたものが必要になります。

+0

これは動作する可能性がありますしようとしているstackoverflow.com/a/41221852/5488468 –

+0

申し訳ありませんが、私の問題ではありません。私の問題はJUnitテストに関するものです – pbelov

+0

こんにちはpbelov、 私は同じ問題に直面しています。あなたはその問題を解決しましたか?はいの場合はどうですか? – TKumar

答えて

2

私の問題を解決しました。簡単だった:

ニーズこのようなアプリレベルbuild.gradleファイルに新しいタスクを作成するには:次の依存関係を追加

android.applicationVariants.all { variant -> 
    def applicationId = variant.applicationId 
    def adb = android.getAdbExe().toString() 
    def variantName = variant.name.capitalize() 
    def grantPermissionTask = tasks.create("create${variantName}Permissions") << { 
     println "Granting permissions" 
     "${adb} shell pm grant ${applicationId} android.permission.ACCESS_FINE_LOCATION".execute() 
     "${adb} shell pm grant ${applicationId} android.permission.WRITE_EXTERNAL_STORAGE".execute() 
     "${adb} shell pm grant ${applicationId} android.permission.READ_EXTERNAL_STORAGE".execute() 
    } 
} 

:、すべての必要な権限をその後

preBuild.dependsOn "createDebugPermissions" 

をしますあなたが任意のテストを実行するときに付与される

関連する問題