friendica-github/tests
2024-11-02 22:06:02 +01:00
..
datasets REUSE tests directory 2024-08-24 14:31:41 +02:00
functional REUSE tests directory 2024-08-24 14:31:41 +02:00
src Fix tests 2024-11-02 22:06:02 +01:00
Util REUSE tests directory 2024-08-24 14:31:41 +02:00
bootstrap.php REUSE tests directory 2024-08-24 14:31:41 +02:00
DatabaseTest.php REUSE tests directory 2024-08-24 14:31:41 +02:00
DatabaseTestTrait.php REUSE tests directory 2024-08-24 14:31:41 +02:00
DiceHttpMockHandlerTrait.php REUSE tests directory 2024-08-24 14:31:41 +02:00
FixtureTest.php REUSE tests directory 2024-08-24 14:31:41 +02:00
FixtureTestTrait.php REUSE tests directory 2024-08-24 14:31:41 +02:00
MockedTest.php REUSE tests directory 2024-08-24 14:31:41 +02:00
phpunit-addons.xml Move Cache to strategies 2023-07-26 19:17:43 +02:00
phpunit.xml Move last legacy API tests & adapt phpunit.xml 2022-01-22 21:29:43 +01:00
README.md update testing documentation 2024-04-14 11:11:00 +02:00

Using the Friendica tests

Install Tools

You need to install the following software:

  • PHP
  • MySQL or Mariadb (the latter is preferred)

For example in Ubuntu you can run:

sudo apt install mariadb-server php

Install PHP extensions

The following extensions must be installed:

  • MySQL
  • Curl
  • GD
  • XML
  • DOM
  • SimpleXML
  • Intl
  • Multi-precision
  • Multi-byte string

For example in Ubuntu:

sudo apt install php-mysql php-curl php-gd php-xml php-intl php-gmp php-mbstring

Create Local Database

The default database name is test, username friendica, password friendica. These can be overridden using environment variables DATABASE_NAME, DATABASE_USER, DATABASE_HOST, and DATABASE_PASSWORD. Whatever settings you choose, you must give the corresponding user the necessary privileges to create and destroy the chosen database.

GRANT ALL PRIVILEGES ON test.* TO 'friendica'@'localhost' IDENTIFIED BY 'friendica' WITH GRANT OPTION;
GRANT CREATE, DROP ON test.* TO 'friendica'@'localhost';

Use Docker Database

Instead of using a local database, you can also use a database running in a docker container.

TODO this section needs to be filled in with working examples.

Running Tests

You can then run the tests using the autotest.sh script. You should specify the type of database as an argument, either mysql or mariadb:

bin/dev/autotest.sh mariadb

You can also run just one particular file of tests:

bin/dev/autotest.sh mariadb src/Util/ImagesTest.php

Example output of tests passing:

OK (2 tests, 2 assertions)

Failed tests look like this. Examine the output before this to see which tests failed.

FAILURES!
Tests: 2, Assertions: 2, Failures: 1.