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

Proposal: reorganize integration tests #6

Open
ghost opened this issue Sep 25, 2020 · 0 comments
Open

Proposal: reorganize integration tests #6

ghost opened this issue Sep 25, 2020 · 0 comments

Comments

@ghost
Copy link

ghost commented Sep 25, 2020

I'm not a fan of the current state of integration testing. Right now, it is spread across two repositories, LGNBuilder and LGNC-Swift (will be even more as more languages become supported), which are too tightly and mutually dependent on each other, and making changes requires coordinated updating of both repositories.

I suggest to strip integration tests from both repositories and to place them in a designated one, let's say, LGNC-integration-tests. This repository shall contain both test schema and test contract implementations for each language. A script shall be written, which will pull as dependencies LGNBuilder and each LGNC-<lang> implementation, generate necessary code and run tests.

The advantages of this approach that I see are:

  • Tests will become easier to comprehend, update and expand
  • With some effort, test contract implementations may become examples of how to write contracts for each language, easily accessible for a newcomer
  • Less chance for inadvertent coupling between a language implementation and its tests, since the implementation will be pulled as a dependency, like in a real world project
  • A single point for observing all language implementations' compliance

Another suggestion, of which I am not certain, would be to put the builder, the tests and the general documentation into LGNC repository, to avoid spreading the project across too many repos.

Thoughts?

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

0 participants