Skip to content

Actually integrate tests into a continous integration #16

@rugk

Description

@rugk

from TinyWebEx/AutomaticSettings#19 (comment):

Well, we could always setup CI to run them automatically in Firefox and Chrome, although that would probably be for a separate PR.

Oh yes, and for these tests you'd need to dynamically load the add-on into the browser etc.
Maybe it's possible with some libs and so on, but in the past it either was not possible or I did not tackle it, so well… this is unfortunately the state we have.

See https://github.com/TinyWebEx/common/blob/master/CONTRIBUTING.md#tests on how to run these tests.

Currently it's a lot of manual work and thus I – "naturally" (i.e. I should have seen it) – forgot to run them…
They rotted…

And now a lot of tests do not even work anymore… 😢

As such:

  • a first big step would be to actually run these on GitHub Actions. Remember the steps above, there some problems you may have to tackle such as:
    • many libraries depend on each other and most depend on the TestHelper
    • you need to open specific URLs with the extension ID in the browser to run these tests
    • you may need special permission for each lib. As such, you need to load the manifest.json? from each lib's directory. (But – due to dependencies – first copy/symblink it in the upper directory, i.e. .., as otherwise the dependencies won't load in the browser. You'll see that if you encounter it.)
    • tests should run on Firefox… and if the libs are (already) compatible with Chromium (or Chrome, whatever) with this polyfill, which you likely need to add
    • as said, the tests may be outdated and fail, but…
  • I guess making all tests work again and potentially improving them is another huge work

Best way to tackle

As said, I think we should tackle it in this order: 1. integrate the tests in a proper CI 2. then fix them.

Also, likely one needs to be iterate. Use one (smaller/less complicated) lib first, then others etc.
Etc.

So any help is clearly appreciated.
I honestly just did not had the time to keep these up-to-date etc. There is clearly a lot of technical dept here.

Metadata

Metadata

Assignees

No one assigned

    Labels

    enhancementNew feature or requesthelp wantedExtra attention is needed

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions