gitea/tests/integration
wxiaoguang 34dfc25b83
Make git clone URL could use current signed-in user (#33091)
close #33086

* Add a special value for "SSH_USER" setting: `(DOER_USERNAME)`
* Improve parseRepositoryURL and add tests (now it doesn't have hard
dependency on some setting values)

Many changes are just adding "ctx" and "doer" argument to functions.

By the way, improve app.example.ini, remove all `%(key)s` syntax, it
only makes messy and no user really cares about it.

Document: https://gitea.com/gitea/docs/pulls/138
2025-01-07 13:17:44 +08:00
..
migration-test Refactor template & test related code (#32938) 2024-12-22 15:33:19 +00:00
schemas
README.md Improve testing and try to fix MySQL hanging (#32515) 2024-11-15 23:45:07 +08:00
README_ZH.md add {{TEST_MINIO_ENDPOINT}} for local testing "with/without" docker + fix pgsql testing doc (#32105) 2024-10-03 01:00:56 +00:00
actions_job_test.go Improve Actions test (#32883) 2024-12-26 22:10:30 +00:00
actions_log_test.go Improve Actions test (#32883) 2024-12-26 22:10:30 +00:00
actions_runner_test.go Improve Actions test (#32883) 2024-12-26 22:10:30 +00:00
actions_trigger_test.go Add reviewers selection to new pull request (#32403) 2024-11-09 04:48:31 +00:00
admin_config_test.go Move admin routers from /admin to /-/admin (#32189) 2024-10-10 04:56:49 +00:00
admin_user_test.go Move admin routers from /admin to /-/admin (#32189) 2024-10-10 04:56:49 +00:00
api_actions_artifact_test.go Enable tenv and testifylint rules (#32852) 2024-12-15 10:41:29 +00:00
api_actions_artifact_v4_test.go Refactor tests to prevent from unnecessary preparations (#32398) 2024-11-01 23:18:29 +08:00
api_activitypub_person_test.go Convert to url auth to header auth in tests (#28484) 2023-12-21 23:59:59 +00:00
api_admin_org_test.go Convert to url auth to header auth in tests (#28484) 2023-12-21 23:59:59 +00:00
api_admin_test.go Support repo license (#24872) 2024-10-01 15:25:08 -04:00
api_branch_test.go Enable tenv and testifylint rules (#32852) 2024-12-15 10:41:29 +00:00
api_comment_attachment_test.go Include file extension checks in attachment API (#32151) 2024-11-06 21:34:32 +00:00
api_comment_test.go Add user blocking (#29028) 2024-03-04 08:16:03 +00:00
api_feed_user_test.go
api_fork_test.go Move team related functions to service layer (#32537) 2024-11-27 21:12:26 +00:00
api_gitignore_templates_test.go
api_gpg_keys_test.go Convert to url auth to header auth in tests (#28484) 2023-12-21 23:59:59 +00:00
api_helper_for_declarative_test.go Convert to url auth to header auth in tests (#28484) 2023-12-21 23:59:59 +00:00
api_httpsig_test.go Refactor CSRF token (#32216) 2024-10-10 03:48:21 +00:00
api_issue_attachment_test.go Include file extension checks in attachment API (#32151) 2024-11-06 21:34:32 +00:00
api_issue_config_test.go Enable tenv and testifylint rules (#32852) 2024-12-15 10:41:29 +00:00
api_issue_label_test.go Support org labels when adding labels by label names (#32988) 2024-12-26 19:14:49 +00:00
api_issue_milestone_test.go Fix milestone deadline and date related problems (#32339) 2024-11-05 07:46:40 +00:00
api_issue_pin_test.go Enable tenv and testifylint rules (#32852) 2024-12-15 10:41:29 +00:00
api_issue_reaction_test.go Add user blocking (#29028) 2024-03-04 08:16:03 +00:00
api_issue_stopwatch_test.go Enable tenv and testifylint rules (#32852) 2024-12-15 10:41:29 +00:00
api_issue_subscription_test.go Convert to url auth to header auth in tests (#28484) 2023-12-21 23:59:59 +00:00
api_issue_templates_test.go Refactor issue template parsing and fix API endpoint (#29069) 2024-02-12 05:04:10 +00:00
api_issue_test.go Enable tenv and testifylint rules (#32852) 2024-12-15 10:41:29 +00:00
api_issue_tracked_time_test.go Convert to url auth to header auth in tests (#28484) 2023-12-21 23:59:59 +00:00
api_keys_test.go Enable tenv and testifylint rules (#32852) 2024-12-15 10:41:29 +00:00
api_label_templates_test.go
api_license_templates_test.go
api_nodeinfo_test.go Allow non-admin users to delete review requests (#29057) 2024-02-24 12:38:43 +00:00
api_notification_test.go Enable tenv and testifylint rules (#32852) 2024-12-15 10:41:29 +00:00
api_oauth2_apps_test.go Enable tenv and testifylint rules (#32852) 2024-12-15 10:41:29 +00:00
api_org_avatar_test.go Convert to url auth to header auth in tests (#28484) 2023-12-21 23:59:59 +00:00
api_org_test.go Allow code search by filename (#32210) 2024-10-11 23:35:04 +00:00
api_packages_alpine_test.go Integrate alpine `noarch` packages into other architectures index (#29137) 2024-02-25 15:10:55 +00:00
api_packages_arch_test.go Add Arch package registry (#32692) 2024-12-04 23:09:07 +00:00
api_packages_cargo_test.go Run `go generate` and `go vet` on all packages (#30529) 2024-04-17 09:40:35 +00:00
api_packages_chef_test.go Resolve lint for unused parameter and unnecessary type arguments (#30750) 2024-04-29 08:47:56 +00:00
api_packages_composer_test.go Add bin to Composer Metadata (#32099) 2024-09-21 22:42:17 +00:00
api_packages_conan_test.go Fix nuget/conan/container packages upload bugs (#31967) 2024-09-05 07:05:42 +00:00
api_packages_conda_test.go Support compression for Actions logs (#31761) 2024-08-09 10:10:30 +08:00
api_packages_container_test.go Refactor CSRF token (#32216) 2024-10-10 03:48:21 +00:00
api_packages_cran_test.go Add standard-compliant route to serve outdated R packages (#32783) 2024-12-11 16:20:04 +00:00
api_packages_debian_test.go Fix db engine (#32351) 2024-10-27 18:48:07 -04:00
api_packages_generic_test.go Azure blob storage support (#30995) 2024-05-30 07:33:50 +00:00
api_packages_goproxy_test.go Convert to url auth to header auth in tests (#28484) 2023-12-21 23:59:59 +00:00
api_packages_helm_test.go Convert to url auth to header auth in tests (#28484) 2023-12-21 23:59:59 +00:00
api_packages_maven_test.go Refactor maven package registry (#33049) 2024-12-31 05:30:52 +00:00
api_packages_npm_test.go Refactor package (routes and error handling, npm peer dependency) (#33111) 2025-01-06 22:45:20 +08:00
api_packages_nuget_test.go Fix nuget/conan/container packages upload bugs (#31967) 2024-09-05 07:05:42 +00:00
api_packages_pub_test.go Convert to url auth to header auth in tests (#28484) 2023-12-21 23:59:59 +00:00
api_packages_pypi_test.go Use `Project-URL` metadata field to get a PyPI package's homepage URL (#33089) 2025-01-03 21:09:47 +00:00
api_packages_rpm_test.go Add signature support for the RPM module (#27069) 2024-08-06 09:03:33 -04:00
api_packages_rubygems_test.go Improve rubygems package registry (#31357) 2024-06-17 08:42:46 +00:00
api_packages_swift_test.go Add Swift login endpoint (#32693) 2024-12-03 16:24:16 +00:00
api_packages_test.go Use `crypto/sha256` (#29386) 2024-02-25 13:32:13 +00:00
api_packages_vagrant_test.go Convert to url auth to header auth in tests (#28484) 2023-12-21 23:59:59 +00:00
api_private_serv_test.go
api_pull_commits_test.go Use batch database operations instead of one by one to optimze api pulls (#32680) 2024-12-11 05:15:06 +08:00
api_pull_review_test.go Add reviewers selection to new pull request (#32403) 2024-11-09 04:48:31 +00:00
api_pull_test.go Enable tenv and testifylint rules (#32852) 2024-12-15 10:41:29 +00:00
api_releases_attachment_test.go Include file extension checks in attachment API (#32151) 2024-11-06 21:34:32 +00:00
api_releases_test.go Handle invalid target when creating releases using API (#31841) 2024-09-12 07:47:31 +00:00
api_repo_archive_test.go Add github compatible tarball download API endpoints (#32572) 2024-11-25 19:35:49 +00:00
api_repo_avatar_test.go Convert to url auth to header auth in tests (#28484) 2023-12-21 23:59:59 +00:00
api_repo_branch_test.go Fix bug when a token is given public only (#32204) 2024-10-08 12:51:09 +03:00
api_repo_collaborator_test.go Add user blocking (#29028) 2024-03-04 08:16:03 +00:00
api_repo_compare_test.go Make API "compare" accept commit IDs (#32801) 2024-12-12 08:10:09 +00:00
api_repo_edit_test.go Add merge style `fast-forward-only` (#28954) 2024-02-12 23:37:23 +01:00
api_repo_file_create_test.go Move context from modules to services (#29440) 2024-02-27 08:12:22 +01:00
api_repo_file_delete_test.go Convert to url auth to header auth in tests (#28484) 2023-12-21 23:59:59 +00:00
api_repo_file_get_test.go Improve testing and try to fix MySQL hanging (#32515) 2024-11-15 23:45:07 +08:00
api_repo_file_helpers.go Move some errors to their own sub packages (#32880) 2024-12-20 18:05:29 +00:00
api_repo_file_update_test.go Move context from modules to services (#29440) 2024-02-27 08:12:22 +01:00
api_repo_files_change_test.go Move context from modules to services (#29440) 2024-02-27 08:12:22 +01:00
api_repo_get_contents_list_test.go Simplify how git repositories are opened (#28937) 2024-01-27 21:09:51 +01:00
api_repo_get_contents_test.go Simplify how git repositories are opened (#28937) 2024-01-27 21:09:51 +01:00
api_repo_git_blobs_test.go Convert to url auth to header auth in tests (#28484) 2023-12-21 23:59:59 +00:00
api_repo_git_commits_test.go Enable tenv and testifylint rules (#32852) 2024-12-15 10:41:29 +00:00
api_repo_git_hook_test.go Remove some unnecessary template helpers (#33069) 2025-01-01 18:02:34 +08:00
api_repo_git_notes_test.go Convert to url auth to header auth in tests (#28484) 2023-12-21 23:59:59 +00:00
api_repo_git_ref_test.go Convert to url auth to header auth in tests (#28484) 2023-12-21 23:59:59 +00:00
api_repo_git_tags_test.go Resolve lint for unused parameter and unnecessary type arguments (#30750) 2024-04-29 08:47:56 +00:00
api_repo_git_trees_test.go Convert to url auth to header auth in tests (#28484) 2023-12-21 23:59:59 +00:00
api_repo_hook_test.go Convert to url auth to header auth in tests (#28484) 2023-12-21 23:59:59 +00:00
api_repo_languages_test.go
api_repo_lfs_locks_test.go Enable tenv and testifylint rules (#32852) 2024-12-15 10:41:29 +00:00
api_repo_lfs_migrate_test.go Convert to url auth to header auth in tests (#28484) 2023-12-21 23:59:59 +00:00
api_repo_lfs_test.go Fix #31185 try fix lfs download from bitbucket failed (#31201) 2024-06-11 22:22:28 +00:00
api_repo_license_test.go Support repo license (#24872) 2024-10-01 15:25:08 -04:00
api_repo_raw_test.go Convert to url auth to header auth in tests (#28484) 2023-12-21 23:59:59 +00:00
api_repo_secrets_test.go feat(api): enhance Actions Secrets Management API for repository (#30656) 2024-04-26 21:11:49 +08:00
api_repo_tags_test.go Add `lint-go-gopls` (#30729) 2024-06-05 09:22:38 +08:00
api_repo_teams_test.go Enable tenv and testifylint rules (#32852) 2024-12-15 10:41:29 +00:00
api_repo_test.go Fix get reviewers' bug (#32415) 2024-11-22 10:44:48 -05:00
api_repo_topic_test.go Refactor topic Find functions and add more tests for pagination (#30127) 2024-03-29 11:38:16 +08:00
api_repo_variables_test.go Add API for `Variables` (#29520) 2024-03-28 20:40:35 +00:00
api_settings_test.go
api_team_test.go Allow everyone to read or write a wiki by a repo unit setting (#30495) 2024-04-17 15:58:37 +00:00
api_team_user_test.go Convert to url auth to header auth in tests (#28484) 2023-12-21 23:59:59 +00:00
api_token_test.go Fix incorrect `/tokens` api (#32085) 2024-09-20 19:00:39 +00:00
api_twofa_test.go Fix basic auth with webauthn (#32531) 2024-11-16 17:52:16 +00:00
api_user_avatar_test.go Convert to url auth to header auth in tests (#28484) 2023-12-21 23:59:59 +00:00
api_user_block_test.go Move RepoTransfer from models to models/repo sub package (#32506) 2024-12-18 11:44:16 +08:00
api_user_email_test.go Unify user update methods (#28733) 2024-02-04 13:29:09 +00:00
api_user_follow_test.go Add user blocking (#29028) 2024-03-04 08:16:03 +00:00
api_user_heatmap_test.go Refactor timeutil package (#28623) 2023-12-28 10:09:57 +00:00
api_user_info_test.go Convert to url auth to header auth in tests (#28484) 2023-12-21 23:59:59 +00:00
api_user_org_perm_test.go Convert to url auth to header auth in tests (#28484) 2023-12-21 23:59:59 +00:00
api_user_orgs_test.go Enable tenv and testifylint rules (#32852) 2024-12-15 10:41:29 +00:00
api_user_search_test.go Enable tenv and testifylint rules (#32852) 2024-12-15 10:41:29 +00:00
api_user_secrets_test.go Convert to url auth to header auth in tests (#28484) 2023-12-21 23:59:59 +00:00
api_user_star_test.go Add user blocking (#29028) 2024-03-04 08:16:03 +00:00
api_user_update_test.go Add an api test for updating user (#30539) 2024-04-18 03:16:20 +00:00
api_user_variables_test.go Clarify Actions resources ownership (#31724) 2024-08-01 09:04:04 +00:00
api_user_watch_test.go Add user blocking (#29028) 2024-03-04 08:16:03 +00:00
api_wiki_test.go Convert to url auth to header auth in tests (#28484) 2023-12-21 23:59:59 +00:00
attachment_test.go Refactor CSRF token (#32216) 2024-10-10 03:48:21 +00:00
auth_ldap_test.go Refactor tests (#33021) 2024-12-29 01:05:56 +00:00
avatar.png
benchmarks_test.go Replace deprecated `math/rand` functions (#30733) 2024-04-27 18:50:35 +02:00
branches_test.go Refactor locale&string&template related code (#29165) 2024-02-14 21:48:45 +00:00
change_default_branch_test.go Refactor CSRF token (#32216) 2024-10-10 03:48:21 +00:00
cmd_keys_test.go
compare_test.go Refactor pull-request compare&create page (#33071) 2025-01-02 01:16:09 +08:00
cors_test.go Refactor CORS handler (#28587) 2023-12-25 20:13:18 +08:00
create_no_session_test.go
csrf_test.go Refactor CSRF protector (#32057) 2024-09-18 15:17:25 +08:00
db_collation_test.go Refactor push mirror find and add check for updating push mirror (#32539) 2024-11-18 05:59:04 +00:00
delete_user_test.go Refactor CSRF token (#32216) 2024-10-10 03:48:21 +00:00
download_test.go
dump_restore_test.go Make git clone URL could use current signed-in user (#33091) 2025-01-07 13:17:44 +08:00
editor_test.go Refactor CSRF token (#32216) 2024-10-10 03:48:21 +00:00
empty_repo_test.go Fix repo empty guide (#33114) 2025-01-06 12:07:52 +08:00
eventsource_test.go Convert to url auth to header auth in tests (#28484) 2023-12-21 23:59:59 +00:00
explore_repos_test.go Improve repo search UI (#29767) 2024-03-15 09:45:30 +00:00
explore_user_test.go Remove unnecessary ".Link" usages (#29909) 2024-03-20 13:56:42 +08:00
git_general_test.go Improve testing and try to fix MySQL hanging (#32515) 2024-11-15 23:45:07 +08:00
git_helper_for_declarative_test.go Enable tenv and testifylint rules (#32852) 2024-12-15 10:41:29 +00:00
git_lfs_ssh_test.go Fix LFS route mock, realm, middleware names (#32488) 2024-11-13 16:58:09 +08:00
git_misc_test.go Improve testing and try to fix MySQL hanging (#32515) 2024-11-15 23:45:07 +08:00
git_push_test.go Enable tenv and testifylint rules (#32852) 2024-12-15 10:41:29 +00:00
git_smart_http_test.go
goget_test.go
gpg_git_test.go Enable tenv and testifylint rules (#32852) 2024-12-15 10:41:29 +00:00
html_helper.go Issue time estimate, meaningful time tracking (#23113) 2024-12-05 13:07:53 +00:00
incoming_email_test.go Split mail sender sub package from mailer service package (#32618) 2024-11-30 01:15:41 +00:00
integration_test.go Refactor env var related code (#33075) 2025-01-02 11:36:50 +08:00
issue_test.go Fix milestone deadline and date related problems (#32339) 2024-11-05 07:46:40 +00:00
lfs_getobject_test.go
lfs_local_endpoint_test.go
lfs_view_test.go Fix test fixtures for user2/lfs.git (#32477) 2024-11-12 05:41:22 +00:00
linguist_test.go Improve testing and try to fix MySQL hanging (#32515) 2024-11-15 23:45:07 +08:00
links_test.go Refactor RepoRefByType (#32413) 2024-11-05 06:35:54 +00:00
markup_external_test.go Refactor render system (#32492) 2024-11-14 05:02:11 +00:00
migrate_test.go bump to go 1.23 (#31855) 2024-09-10 02:23:07 +00:00
mirror_pull_test.go Move migration functions to services layer (#29497) 2024-03-01 02:23:00 +00:00
mirror_push_test.go Enable tenv and testifylint rules (#32852) 2024-12-15 10:41:29 +00:00
nonascii_branches_test.go Refactor CSRF token (#32216) 2024-10-10 03:48:21 +00:00
oauth_test.go Enable tenv and testifylint rules (#32852) 2024-12-15 10:41:29 +00:00
org_count_test.go Enable tenv and testifylint rules (#32852) 2024-12-15 10:41:29 +00:00
org_profile_test.go [Feature] Private README.md for organization (#32872) 2024-12-31 04:22:09 +00:00
org_project_test.go Refactor CSRF token (#32216) 2024-10-10 03:48:21 +00:00
org_team_invite_test.go Support for email addresses containing uppercase characters when activating user account (#32998) 2024-12-27 19:16:23 +08:00
org_test.go Ensure `GetCSRF` doesn't return an empty token (#32130) 2024-09-30 02:28:09 +00:00
private-testing.key
privateactivity_test.go Refactor CSRF token (#32216) 2024-10-10 03:48:21 +00:00
project_test.go Rename project board -> column to make the UI less confusing (#30170) 2024-05-27 08:59:54 +00:00
pull_commit_test.go Use batch database operations instead of one by one to optimze api pulls (#32680) 2024-12-11 05:15:06 +08:00
pull_compare_test.go Enable tenv and testifylint rules (#32852) 2024-12-15 10:41:29 +00:00
pull_create_test.go Fix templating in pull request comparison (#33025) 2024-12-29 01:32:19 +00:00
pull_diff_test.go
pull_merge_test.go Move some errors to their own sub packages (#32880) 2024-12-20 18:05:29 +00:00
pull_review_test.go Refactor tests (#33021) 2024-12-29 01:05:56 +00:00
pull_status_test.go Refactor CSRF token (#32216) 2024-10-10 03:48:21 +00:00
pull_update_test.go Add reviewers selection to new pull request (#32403) 2024-11-09 04:48:31 +00:00
release_test.go Restyle release list, fix branch dropdown (#30837) 2024-05-13 23:33:51 +02:00
rename_branch_test.go Refactor CSRF token (#32216) 2024-10-10 03:48:21 +00:00
repo_activity_test.go Fix wrong display of recently pushed notification (#25812) 2024-05-21 17:00:35 +00:00
repo_archive_test.go Enable tenv and testifylint rules (#32852) 2024-12-15 10:41:29 +00:00
repo_branch_test.go Improve testing and try to fix MySQL hanging (#32515) 2024-11-15 23:45:07 +08:00
repo_commits_search_test.go Integration Test for Commit Search containing Square Brackets (#28751) 2024-01-11 11:04:45 +08:00
repo_commits_test.go De-emphasize signed commits (#31160) 2024-12-28 04:18:30 +08:00
repo_fork_test.go Enable tenv and testifylint rules (#32852) 2024-12-15 10:41:29 +00:00
repo_generate_test.go Enable tenv and testifylint rules (#32852) 2024-12-15 10:41:29 +00:00
repo_mergecommit_revert_test.go Run `go generate` and `go vet` on all packages (#30529) 2024-04-17 09:40:35 +00:00
repo_migrate_test.go
repo_search_test.go Resolve lint for unused parameter and unnecessary type arguments (#30750) 2024-04-29 08:47:56 +00:00
repo_tag_test.go Move some errors to their own sub packages (#32880) 2024-12-20 18:05:29 +00:00
repo_test.go Enable tenv and testifylint rules (#32852) 2024-12-15 10:41:29 +00:00
repo_topic_test.go Refactor topic Find functions and add more tests for pagination (#30127) 2024-03-29 11:38:16 +08:00
repo_watch_test.go
repo_webhook_test.go Fix incorrect menu/link on webhook edit page (#29709) 2024-03-14 01:37:15 +00:00
repofiles_change_test.go Clarify path param naming (#32969) 2024-12-24 13:47:45 +00:00
session_test.go Enable tenv and testifylint rules (#32852) 2024-12-15 10:41:29 +00:00
setting_test.go
signin_test.go Refactor tests (#33021) 2024-12-29 01:05:56 +00:00
signout_test.go
signup_test.go Support for email addresses containing uppercase characters when activating user account (#32998) 2024-12-27 19:16:23 +08:00
ssh_key_test.go
timetracking_test.go Issue time estimate, meaningful time tracking (#23113) 2024-12-05 13:07:53 +00:00
user_avatar_test.go Refactor CSRF token (#32216) 2024-10-10 03:48:21 +00:00
user_settings_test.go Validate OAuth Redirect URIs (#32643) 2024-11-28 10:50:27 +08:00
user_test.go Enable tenv and testifylint rules (#32852) 2024-12-15 10:41:29 +00:00
version_test.go
view_test.go
webfinger_test.go
wiki_test.go Make wiki pages visit fast (#32732) 2024-12-06 07:39:50 +00:00
xss_test.go Refactor CSRF token (#32216) 2024-10-10 03:48:21 +00:00

README.md

Integration tests

Integration tests can be run with make commands for the appropriate backends, namely:

make test-sqlite
make test-pgsql
make test-mysql
make test-mssql

Make sure to perform a clean build before running tests:

make clean build

Run tests via local act_runner

Run all jobs

act_runner exec -W ./.github/workflows/pull-db-tests.yml --event=pull_request --default-actions-url="https://github.com" -i catthehacker/ubuntu:runner-latest

Warning: This file defines many jobs, so it will be resource-intensive and therefor not recommended.

Run single job

act_runner exec -W ./.github/workflows/pull-db-tests.yml --event=pull_request --default-actions-url="https://github.com" -i catthehacker/ubuntu:runner-latest -j <job_name>

You can list all job names via:

act_runner exec -W ./.github/workflows/pull-db-tests.yml --event=pull_request --default-actions-url="https://github.com" -i catthehacker/ubuntu:runner-latest -l

Run sqlite integration tests

Start tests

make test-sqlite

Run MySQL integration tests

Setup a MySQL database inside docker

docker run -e "MYSQL_DATABASE=test" -e "MYSQL_ALLOW_EMPTY_PASSWORD=yes" -p 3306:3306 --rm --name mysql mysql:latest #(just ctrl-c to stop db and clean the container)
docker run -p 9200:9200 -p 9300:9300 -e "discovery.type=single-node" --rm --name elasticsearch elasticsearch:7.6.0 #(in a second terminal, just ctrl-c to stop db and clean the container)

Start tests based on the database container

TEST_MYSQL_HOST=localhost:3306 TEST_MYSQL_DBNAME=test TEST_MYSQL_USERNAME=root TEST_MYSQL_PASSWORD='' make test-mysql

Run pgsql integration tests

Setup a pgsql database inside docker

docker run -e "POSTGRES_DB=test" -e "POSTGRES_USER=postgres" -e "POSTGRES_PASSWORD=postgres" -p 5432:5432 --rm --name pgsql postgres:latest #(just ctrl-c to stop db and clean the container)

Setup minio inside docker

docker run --rm -p 9000:9000 -e MINIO_ROOT_USER=123456 -e MINIO_ROOT_PASSWORD=12345678 --name minio bitnami/minio:2023.8.31

Start tests based on the database container

TEST_MINIO_ENDPOINT=localhost:9000 TEST_PGSQL_HOST=localhost:5432 TEST_PGSQL_DBNAME=postgres TEST_PGSQL_USERNAME=postgres TEST_PGSQL_PASSWORD=postgres make test-pgsql

Run mssql integration tests

Setup a mssql database inside docker

docker run -e "ACCEPT_EULA=Y" -e "MSSQL_PID=Standard" -e "SA_PASSWORD=MwantsaSecurePassword1" -p 1433:1433 --rm --name mssql microsoft/mssql-server-linux:latest #(just ctrl-c to stop db and clean the container)

Start tests based on the database container

TEST_MSSQL_HOST=localhost:1433 TEST_MSSQL_DBNAME=gitea_test TEST_MSSQL_USERNAME=sa TEST_MSSQL_PASSWORD=MwantsaSecurePassword1 make test-mssql

Running individual tests

Example command to run GPG test:

For SQLite:

make test-sqlite#GPG

For other databases(replace mssql to mysql, or pgsql):

TEST_MSSQL_HOST=localhost:1433 TEST_MSSQL_DBNAME=test TEST_MSSQL_USERNAME=sa TEST_MSSQL_PASSWORD=MwantsaSecurePassword1 make test-mssql#GPG

Setting timeouts for declaring long-tests and long-flushes

We appreciate that some testing machines may not be very powerful and the default timeouts for declaring a slow test or a slow clean-up flush may not be appropriate.

You can set the following environment variables:

GITEA_TEST_SLOW_RUN="10s" GITEA_TEST_SLOW_FLUSH="1s" make test-sqlite