-
Notifications
You must be signed in to change notification settings - Fork 1.1k
New command that allows for a user to run mobile tests that are defined as yaml. #9626
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
base: main
Are you sure you want to change the base?
Conversation
Summary of ChangesHello @jrothfeder, I'm Gemini Code Assist1! I'm currently reviewing this pull request and will post my feedback shortly. In the meantime, here's a summary to help you and other reviewers quickly get up to speed! This pull request introduces the initial infrastructure for an experimental Mobile App Testing Agent (MATA) feature. It modifies the test parsing logic to make target URIs optional, accommodating diverse testing scenarios, potentially including those for mobile applications. Additionally, it enhances the logging within the test file parsing utility to provide clearer insights into its operation. Highlights
Using Gemini Code AssistThe full guide for Gemini Code Assist can be found on our documentation page, here are some quick tips. Invoking Gemini You can request assistance from Gemini at any point by creating a comment using either
Customization To customize Gemini Code Assist for GitHub experience, repository maintainers can create a configuration file and/or provide a custom code review style guide (such as PEP-8 for Python) by creating and adding files to a Limitations & Feedback Gemini Code Assist may make mistakes. Please leave feedback on any instances where its feedback is incorrect or counter productive. You can react with 👍 and 👎 on @gemini-code-assist comments. If you're interested in giving your feedback about your experience with Gemini Code Assist for Github and other Google products, sign up here. You can also get AI-powered code generation, chat, as well as code reviews directly in the IDE at no cost with the Gemini Code Assist IDE Extension. Footnotes
|
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Code Review
This pull request introduces a new experimental feature, "mata", for mobile app testing. The changes make targetUri optional when parsing test files to support this new feature. While the changes are mostly correct, there are a few critical issues that need to be addressed. A logging statement in parseTestFiles.ts incorrectly logs entire file contents, which is a security and performance concern. There's also a potential null reference exception in src/commands/index.ts when initializing the new mata command. Additionally, there are some opportunities to improve type safety and logging verbosity.
Co-authored-by: gemini-code-assist[bot] <176961590+gemini-code-assist[bot]@users.noreply.github.com>
Co-authored-by: gemini-code-assist[bot] <176961590+gemini-code-assist[bot]@users.noreply.github.com>
…ting apptesting experiment.
* Add support for prerequisite tests * Address GCA comments
| }, | ||
| ]; | ||
|
|
||
| export const command = new Command("apptesting:mobile-execute <target>") |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Having a dash in the command is out-of-style for the firebase CLI.
So this could be apptesting:mobile:execute, but that'd be weird. I think just extending the existing apptesting:execute makes much more sense (mobile vs. web can be determined by looking at the app ID).
Or the app distribution namespace...
| tests: [ | ||
| { | ||
| id: "my-first-test", | ||
| testName: "my first test", |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Shouldn't this be displayName? Why does this work?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
WATA uses testName. This initially tripped me up as well, so maybe we need to chat some more about this.
| { | ||
| id: "my-first-test", | ||
| testName: "my first test", | ||
| steps: [{ goal: "do something first" }], |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I'm confused: In other tests in this file I see the steps under instructions. Is both supported?
The problem is that we want to be compatible with the format produced by appdistribution:testcases:export and the existing web test configuration. I think we need some better test coverage for that.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
So we need to be compatible with the WATA file format and the format produced by appdistribution:testcases:export? I wonder if we can just decide on one particular format instead...
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
This keeps coming up but there's no requirement that we are compatible with appdistribution:export. Being compatible with wata makes sense here and also allows us to reuse the testcase loading code.
Description
New command that allows for a user to run mobile tests that are defined as yaml. Tests will be read from a test dir and run remotely. Filters can be supplied to specify which tests are run.
Scenarios Tested
Tested running mobile tests from the command line.
Sample Commands