SOLFIND
Web Lens
Portal home

Integration Tests · The itch.io app book - itch.io

https://itch.io/docs/itch/developing/integration-tests.html • 33 KB fetched
Open original page


Integration Tests · The itch.io app book - itch.io Skip to main content itch.io Browse Games Game Jams Upload Game Developer Logs Community Log in Register Indie game store Free games Fun games Horror games Game development Assets Comics Sales Bundles Jobs Tags Game Engines itch app Return to app * Introduction * User guide * Installing * Installing on Windows * Installing on macOS * Installing on Linux * Logging in * Using the app offline * Preferences * The sandbox * Windows sandboxing * macOS sandboxing * Linux sandboxing * Using a proxy * Downloading games * Install locations * Scanning for games * Linking an existing folder * Collections * Bundles * Launch settings * Steam shortcuts * Game developer guide * Quick start * Windows builds * macOS builds * Linux builds * Web builds * How updates work * App manifests * Manifest actions * Prerequisites * Visual C++ Runtime * .NET * XNA Framework * DirectX * Validating builds and manifests * API integration * Protocol URLs and automation * Compatibility policy * Troubleshooting * Contributor guide * How you can help * Getting started with the codebase * Integration Tests * Environment variables * Performance hacking * Continuous deployment * Butler TypeScript typings * Syncing translations * Dependencies (broth) * Appendix * Acknowledgements * Building Linux software into a prefix * * Published with HonKit Integration Tests Integration tests Integration tests exercise user flows like login, navigation, and game install against a running build of the app. They use a homegrown Go runner that drives the app via ChromeDriver (WebDriver). Requirements * Go to compile the test runner * A desktop environment . On Linux CI, xvfb is used. * An itch.io API key for the test account that integration tests authenticate as The test runner downloads a specific ChromeDriver version that must match the Electron version used by the app. If you bump Electron in package.json , also update integration-tests/versions.go . Running integration tests # API key for the test account export ITCH_TEST_ACCOUNT_API_KEY= "your-api-key" # Run against a packaged build npm run integration-tests # Run against the dev version (faster, no packaging step) node release/test.js --test-dev To start fresh, clear the cached ChromeDriver and test artifacts: rm -rf integration-tests/.chromedriver integration-tests/tmp integration-tests/screenshots If you're an itch.io employee, ask the team about getting an API key for the test account. Open-source contributors aren't expected to run the integration suite locally; CI will run them on your PR. Writing an integration test Scenarios live in integration-tests/ alongside the runner support code. They're explicitly listed in integration-tests/main.go . References: * The WebDriver API docs * Existing tests in the integration-tests/ directory results matching " " No results matching " "

Links found on this page

  1. Skip to main content [direct]
  2. itch.io [direct]
  3. Browse Games [direct]
  4. Game Jams [direct]
  5. Upload Game [direct]
  6. Developer Logs [direct]
  7. Community [direct]
  8. Log in [direct]
  9. Register [direct]
  10. Indie game store [direct]
  11. Free games [direct]
  12. Fun games [direct]
  13. Horror games [direct]
  14. Game development [direct]
  15. Assets [direct]
  16. Comics [direct]
  17. Sales [direct]
  18. Bundles [direct]
  19. Jobs [direct]
  20. Tags [direct]
  21. Game Engines [direct]
  22. itch app [direct]
  23. Return to app [direct]
  24. User guide [direct]
  25. Installing [direct]
  26. Installing on Windows [direct]
  27. Installing on macOS [direct]
  28. Installing on Linux [direct]
  29. Logging in [direct]
  30. Using the app offline [direct]
  31. Preferences [direct]
  32. The sandbox [direct]
  33. Windows sandboxing [direct]
  34. macOS sandboxing [direct]
  35. Linux sandboxing [direct]
  36. Using a proxy [direct]
  37. Downloading games [direct]
  38. Install locations [direct]
  39. Scanning for games [direct]
  40. Linking an existing folder [direct]
  41. Collections [direct]
  42. Bundles [direct]
  43. Launch settings [direct]
  44. Steam shortcuts [direct]
  45. Game developer guide [direct]
  46. Quick start [direct]
  47. Windows builds [direct]
  48. macOS builds [direct]
  49. Linux builds [direct]
  50. Web builds [direct]
  51. How updates work [direct]
  52. App manifests [direct]
  53. Manifest actions [direct]
  54. Prerequisites [direct]
  55. Visual C++ Runtime [direct]
  56. .NET [direct]
  57. XNA Framework [direct]
  58. DirectX [direct]
  59. Validating builds and manifests [direct]
  60. API integration [direct]
  61. Protocol URLs and automation [direct]
  62. Compatibility policy [direct]
  63. Troubleshooting [direct]
  64. Contributor guide [direct]
  65. How you can help [direct]
  66. Getting started with the codebase [direct]
  67. Environment variables [direct]
  68. Performance hacking [direct]
  69. Continuous deployment [direct]
  70. Butler TypeScript typings [direct]
  71. Syncing translations [direct]
  72. Dependencies (broth) [direct]
  73. Appendix [direct]
  74. Acknowledgements [direct]
  75. Building Linux software into a prefix [direct]
  76. Published with HonKit [direct]
  77. WebDriver API docs [direct]