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

Add integration testing support that uses the sample repositories #197

Open
gkapfham opened this issue Sep 18, 2019 · 5 comments · May be fixed by #220
Open

Add integration testing support that uses the sample repositories #197

gkapfham opened this issue Sep 18, 2019 · 5 comments · May be fixed by #220
Assignees
Labels

Comments

@gkapfham
Copy link
Collaborator

Issue #192 explains that we want to create new repositories that contain examples that are organized in a new fashion and that adhere to a new naming convention.

Once all of these repositories exist, then it is possible to implement a new approach to integration testing. The idea would be that we can use a tool to clone all of the example repositories when we are testing new features of GatorGrader that are currently in a PR.

We would know that a repository like this one:

https://github.com/GatorEducator/java-assignment-starter-100-01

is a starter repository and thus, by design, the checks for this repo should fail, producing a non-zero exit code.

Alternatively, if we were running gradle grade in this repository:

https://github.com/GatorEducator/java-assignment-solution-100-01

then since it is a solution repository, all of the checks should pass, producing a zero exit code.

What I would like to have is a new approach to integration testing that makes it possible to run these checks automatically for all of the existing sample repositories that follow the new naming convention.

@gkapfham gkapfham self-assigned this Jan 29, 2020
@simojo
Copy link
Collaborator

simojo commented Feb 15, 2020

I'm working on a bash script to get a proof of concept for this. It will clone down each repo in GatorEducator and run gradle grade on it. I'm starting with the GitHub API v3.

@simojo simojo self-assigned this Feb 16, 2020
@simojo
Copy link
Collaborator

simojo commented Mar 9, 2020

There is a command line tool called jq for parsing JSON. I was using it for data returned from curl but was wondering what our approach is on external tools. @gkapfham Should I stay away from using command line tools for testing on travis? If so, how should I go about parsing JSON via bash/batch?

@gkapfham
Copy link
Collaborator Author

Hi @sjones-gh, I think that it is fine if you want to use jq to parse the JSON files when you are running a program in Travis CI. Will you be calling the jq program from a Python program that you implement? Or, will you simply be calling it from a script in Travis CI? Overall, the main challenge that you may run into when it comes to using external programs like jq is that they may not be platform independent and thus there will not be an easy way to run that program through AppVeyor or on a Windows computer.

@simojo
Copy link
Collaborator

simojo commented Jun 16, 2020

@gkapfham the original plan was to call it using a shell script, but if I find that it has a tangled mess of dependencies, I’ll see if there’s some python lib for this. I would like to avoid leaning on yet another python library, though.

@gkapfham
Copy link
Collaborator Author

gkapfham commented Jun 16, 2020

I'm sure that there are multiple Python libraries that would solve this issue. You would need to add it as a dev dependency in pipenv.

@simojo simojo linked a pull request Oct 15, 2020 that will close this issue
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

Successfully merging a pull request may close this issue.

2 participants