diff options
author | Benjamin Brahmer <info@b-brahmer.de> | 2022-08-19 16:59:59 +0200 |
---|---|---|
committer | Benjamin Brahmer <info@b-brahmer.de> | 2022-10-10 16:03:19 +0200 |
commit | efc2cc84a9f5ede5a23be44597551b13c62ebaa1 (patch) | |
tree | d860b51ff6689b65dd0d3e45f9a14d7c6d817ec6 /docs | |
parent | 5b755d90f463926820ced6bcd9bff696393cebae (diff) |
Add some documentation about the integration tests
Signed-off-by: Benjamin Brahmer <info@b-brahmer.de>
Diffstat (limited to 'docs')
-rw-r--r-- | docs/developer.md | 32 |
1 files changed, 32 insertions, 0 deletions
diff --git a/docs/developer.md b/docs/developer.md index 7e290228e..6dda72852 100644 --- a/docs/developer.md +++ b/docs/developer.md @@ -21,3 +21,35 @@ The PHP code should all adhere to [PSR-2](https://www.php-fig.org/psr/psr-2/). To test the codestyle you can run `make phpcs`. For linting JavaScript, a [jshint file](https://github.com/nextcloud/news/blob/master/js/.jshintrc) is used that is run before compiling the JavaScript. + +## General Developer setup +Check the Nextcloud [documentation](https://docs.nextcloud.com/server/latest/developer_manual/getting_started/devenv.html) to learn how to setup a developer environment, alternatively to a proper web server you can also use the [builtin php server](https://www.php.net/manual/en/features.commandline.webserver.php) on demand, it is enough for development purposes. + +When your setup is running, clone the news repository in the `apps/` directory inside the server. + +Change into the news directory and run make to build the app, you will need php, composer, node, npm and maybe more. + +Now you can basically use the news app and test your changes. + +## Running Integration tests locally +We use [bats](https://bats-core.readthedocs.io/en/stable/) to run integration tests against the API and the cli. + +Check how to install bats on your system in the [official documentation](https://bats-core.readthedocs.io/en/stable/installation.html). + +You also need to pull the submodules of the news repo. +```bash +git submodules update --init +``` + +The cli tests expect that the feeds are reachable at `http://localhost:8090`, to achieve that you can use the [builtin php server](https://www.php.net/manual/en/features.commandline.webserver.php). + +Change into the `tests/test_helpers/feeds` directory and execute `php -S localhost:8090` you can also run it in the background like this `php -S localhost:8090 &`. + +Now the test feeds will be reachable for bats. +Run the tests by executing `bats tests/command` you can also only run specific tests for example `bats tests/command/feeds.bats`. + +For the API tests you need to run a second php server or have another web server that provides Nextcloud and the News App. +The tests expect to find Nextcloud at `http://localhost:8080` +You can do this by running `php -S localhost:8080` in the Nextcloud server repository. + +The bats tests can be executed like this `bats tests/api`. |