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
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions