Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Run tests for installed packages #155

Open
Thom1729 opened this issue Jan 10, 2019 · 8 comments
Open

Run tests for installed packages #155

Thom1729 opened this issue Jan 10, 2019 · 8 comments

Comments

@Thom1729
Copy link
Member

Thom1729 commented Jan 10, 2019

Currently, UnitTesting cannot run tests that are inside installed packages.

This would allow package authors to verify that their tests run when the package is installed. End users could also more easily troubleshoot their installed packages.

This is mostly because it inherits the discover method of unittest.TestLoader, which uses the filesystem directly. We could reimplement discover in UnitTestingLoader to use the resource system instead. In principle, this should work for our use case, because every test suite that UnitTesting can find should be accessible as a resource.

There are also a couple of minor issues, such as the way that unittesting.json files are loaded.

I'm working on an implementation.

@randy3k
Copy link
Member

randy3k commented Jan 10, 2019

Thank for the initiative work.

@Thom1729
Copy link
Member Author

How would you feel about adding sublime_lib as a dependency? sublime_lib.ResourcePath would substantially simplify the implementation. (We could use other parts of it as well, but those would be separate PRs.)

@randy3k
Copy link
Member

randy3k commented Jan 10, 2019

Sure. As a note, we will also need to modify the bootstrap code for the CI services so sublime_lib is installed automatically.

@Thom1729
Copy link
Member Author

I'm new to the CI stuff, but shouldn't Package Control install all of the dependencies automatically?

It looks like there's some pre-ST3 code in there. I wonder if it could be simplified a bit to take advantage of new features like the builtin "Install Package Control" command.

@randy3k
Copy link
Member

randy3k commented Jan 10, 2019

Installation of Package Control is optional. If a user didn't install Package Control manually via bootstrap install_package_control, the script will download the current only dependency coverage from the github repo.

@gerardroche
Copy link
Contributor

Just to note that many packages don't include the tests in production packages delivered by Package Control. Package Control uses git to create the packages when installing. This allows developers to take advantage of the export-ignore rule in .gitattribute files (files and directories with the attribute export-ignore won’t be added to archive files. See http://git-scm.com/docs/gitattributes for details).

For example:

https://github.com/NeoVintageous/NeoVintageous/blob/master/.gitattributes

@Thom1729
Copy link
Member Author

Good point. In that case, I would expect UnitTesting to behave as it normally would for a package with no tests.

Is there a good tutorial somewhere on setting up this sort of CI on a local machine for testing?

@randy3k
Copy link
Member

randy3k commented Jan 11, 2019

I used Travis docker machine for testing.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

3 participants