<commit_before># RxEspresso
Filling the gap between RxJava and Espresso

## Bootstrapping
Just set the `testInstrumentationRunner` to `RxAndroidJUnitRunner` in your app module's build.gradle file:

```java
    defaultConfig {
        ...
        testInstrumentationRunner "com.rosshambrick.rxespresso.RxAndroidJUnitRunner"
    }
```

## Include as gradle dependency
TODO

## Include source as library module
1. From project root in terminal run:
`git submodule add https://github.com/rosshambrick/RxEspresso.git`

2. Add dependency to this library module in your app module's build.gradle file:

```java
    dependencies {
        ...
        androidTestCompile project(':rxespresso')
    }
```

## Usage
If you typically use "cold" Observables or short lived "hot" Observables, you shouldn't have to do anything special to make this work in your project.

There *is* **one big exception**. All observables must complete before Espresso will continue.  (I'm still trying to figure out a solution to this).  Below are some of the common use cases that will cause problems:

* You cannot use RxJava in an "event bus" style where you have an Observable that forever remains "hot" to serve up events to interested subscribers.  If you are using RxJava in this manner and want to use Espresso, you will need to migrate to another event bus option.  My preference is using [EventBus](https://github.com/greenrobot/EventBus)
* You will also run into issues if you have Observables running outside the scope of the UI being tested, such as in an Android Service.  The specifics of your usage will determine the level of impact.  Possibly disabling the services when being tested by Espresso could solve the issue.
<commit_msg>Small README formatting fix<commit_after># RxEspresso
Filling the gap between RxJava and Espresso

## Bootstrapping
Just set the `testInstrumentationRunner` to `RxAndroidJUnitRunner` in your app module's build.gradle file:

```java
    defaultConfig {
        ...
        testInstrumentationRunner "com.rosshambrick.rxespresso.RxAndroidJUnitRunner"
    }
```

## Include as gradle dependency
TODO

## Include source as library module
1. From project root in terminal run:

  `git submodule add https://github.com/rosshambrick/RxEspresso.git`

2. Add dependency to this library module in your app module's build.gradle file:

```java
    dependencies {
        ...
        androidTestCompile project(':rxespresso')
    }
```

## Usage
If you typically use "cold" Observables or short lived "hot" Observables, you shouldn't have to do anything special to make this work in your project.

There *is* **one big exception**. All observables must complete before Espresso will continue.  (I'm still trying to figure out a solution to this).  Below are some of the common use cases that will cause problems:

* You cannot use RxJava in an "event bus" style where you have an Observable that forever remains "hot" to serve up events to interested subscribers.  If you are using RxJava in this manner and want to use Espresso, you will need to migrate to another event bus option.  My preference is using [EventBus](https://github.com/greenrobot/EventBus)
* You will also run into issues if you have Observables running outside the scope of the UI being tested, such as in an Android Service.  The specifics of your usage will determine the level of impact.  Possibly disabling the services when being tested by Espresso could solve the issue.

{'fraction_non_alphanumeric': 0.06313350709527947, 'fraction_numerical': 0.0011584129742253113, 'mean_word_length': 4.071953010279001, 'pattern_counts': {'":': 0, '<': 3, '<?xml version=': 0, '>': 3, 'https://': 4, 'lorem ipsum': 0, 'www.': 0, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 0, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
{'dir': 'git-commits-cleaned', 'id': '1805832', 'n_tokens_mistral': 942, 'n_tokens_neox': 891, 'n_words': 459}