<commit_before># Tests

There are four types of tests in BOSH: unit, integration, CPI lifecycle, and acceptance. Each feature should always contain unit tests reflecting the change, and may need additional tests depending on what is changed.

## Available Test Suites

### Unit Tests

Unit tests describe behavior of individual objects or methods. Each BOSH component has its own unit tests in a `spec/unit` folder.

Running individual component unit tests:

```
cd bosh-director # or any other component
bundle exec rspec
```

Running all unit tests:

```
bundle exec rake spec:unit # from the root of the project
```

### Integration Tests

Integration tests describe communication between BOSH components focusing on the CLI, the Director and the Agent. They are in the `spec/integration` folder.

Running the integration tests:

```
bundle exec rake spec:integration<commit_msg>Update running_tests.md to mention Ruby version compatilities<commit_after># Tests

There are four types of tests in BOSH: unit, integration, CPI lifecycle, and acceptance. Each feature should always contain unit tests reflecting the change, and may need additional tests depending on what is changed.

## Available Test Suites

### Unit Tests

Unit tests describe behavior of individual objects or methods. Each BOSH component has its own unit tests in a `spec/unit` folder.

Running individual component unit tests:

```
cd bosh-director # or any other component
bundle exec rspec
```

Running all unit tests:

```
bundle exec rake spec:unit # from the root of the project
```

The CLI is backwards compatible with Ruby 1.9.3, so when making CLI changes make sure that the CLI tests pass when run with Ruby 1.9.3.  All code needs to run on Ruby 2.x.x.

### Integration Tests

Integration tests describe communication between BOSH components focusing on the CLI, the Director and the Agent. They are in the `spec/integration` folder.

Running the integration tests:

```
bundle exec rake spec:integration
{'fraction_non_alphanumeric': 0.058379466532461, 'fraction_numerical': 0.0035228988424760945, 'mean_word_length': 4.6, 'pattern_counts': {'":': 0, '<': 3, '<?xml version=': 0, '>': 3, 'https://': 0, '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': '4472783', 'n_tokens_mistral': 517, 'n_tokens_neox': 488, 'n_words': 282}