mobile-dev-inc / maestro

Painless Mobile UI Automation
https://maestro.mobile.dev/
Apache License 2.0
5.79k stars 270 forks source link

Windows support? #99

Closed humazed closed 2 years ago

humazed commented 2 years ago

I can only see getting started steps for mac and Linux.

Does maestro currently support windows? If not do you have a timeline for when we could expect to have windows support?

dmitry-zaitsev commented 2 years ago

Maestro does, in theory, support Windows as it purely a JVM application. However, we do not have means to test it at this very moment so any input would be much appreciated!

Colorofbest commented 2 years ago

Hello, I'm on Windows and I can use maestro.

Bonus steps to add maestro command alias in PowerShell

The maestro command will be available to each PowerShell session.

If you have a java version error

Enjoy !

To the Maestro team : Thank you for this promising tool !

dmitry-zaitsev commented 2 years ago

Thank you @Colorofbest! I have included a part of your guide into our docs 👍

johnmc-tc commented 1 year ago

The docs on the website do not cover the alias part and as such, do not work.

Without setting the alias up on the machine, you need to do the following command:

.\maestro.bat test ...

I think the docs should be updated to reflect this.

lsaudon commented 1 year ago

@Colorofbest Hey, I have this error on Windows The input line is too long. The syntax of the command is incorrect. when I run .\maestro.bat --version. Don't you have this error now?

Colorofbest commented 1 year ago

The input line is too long. The syntax of the command is incorrect. Hello, yes I confirm I have the same error today (The input line is too long. The syntax of the command is incorrect. )

Windows cmd allow only 8191 characters :-/ (https://learn.microsoft.com/en-us/troubleshoot/windows-client/shell-experience/command-line-string-limitation)

To fix this, just open the bin/maestro.bat and replace all the CLASSPATH=[a lot of jar] With set CLASSPATH=%APP_HOME%\lib\* To include all jar without specifying one by one.

Looks better.

vynguyenbao28 commented 4 months ago

I got the following error @Colorofbest D:\CODE\download-video\maestro>maestro test take.yaml Running on emulator-5554

java.io.IOException: The process cannot access the file because another process has locked a portion of the file at java.base/java.io.FileInputStream.readBytes(Native Method) at java.base/java.io.FileInputStream.read(FileInputStream.java:276) at java.base/sun.nio.cs.StreamDecoder.readBytes(StreamDecoder.java:270) at java.base/sun.nio.cs.StreamDecoder.implRead(StreamDecoder.java:313) at java.base/sun.nio.cs.StreamDecoder.read(StreamDecoder.java:188) at java.base/java.io.InputStreamReader.read(InputStreamReader.java:176) at java.base/java.io.BufferedReader.fill(BufferedReader.java:162) at java.base/java.io.BufferedReader.readLine(BufferedReader.java:329) at java.base/java.io.BufferedReader.readLine(BufferedReader.java:396) at kotlin.io.LinesSequence$iterator$1.hasNext(ReadWrite.kt:79) at kotlin.io.TextStreamsKt.forEachLine(ReadWrite.kt:154) at kotlin.io.FilesKtFileReadWriteKt.forEachLine(FileReadWrite.kt:190) at kotlin.io.FilesKtFileReadWriteKt.readLines(FileReadWrite.kt:219) at kotlin.io.FilesKt__FileReadWriteKt.readLines$default(FileReadWrite.kt:217) at maestro.cli.db.KeyValueStore.getCurrentDB(KeyValueStore.kt:46) at maestro.cli.db.KeyValueStore.keys(KeyValueStore.kt:28) at maestro.cli.session.SessionStore.activeSessions(SessionStore.kt:55) at maestro.cli.session.SessionStore.hasActiveSessions(SessionStore.kt:68) at maestro.cli.session.MaestroSessionManager$newSession$session$1.invoke(MaestroSessionManager.kt:84) at maestro.cli.session.MaestroSessionManager$newSession$session$1.invoke(MaestroSessionManager.kt:81) at maestro.cli.db.KeyValueStore.withExclusiveLock(KeyValueStore.kt:37) at maestro.cli.session.SessionStore.withExclusiveLock(SessionStore.kt:74) at maestro.cli.session.MaestroSessionManager.newSession(MaestroSessionManager.kt:81) at maestro.cli.session.MaestroSessionManager.newSession$default(MaestroSessionManager.kt:58) at maestro.cli.command.TestCommand.call(TestCommand.kt:136) at maestro.cli.command.TestCommand.call(TestCommand.kt:46) at picocli.CommandLine.executeUserObject(CommandLine.java:1933) at picocli.CommandLine.access$1200(CommandLine.java:145) at picocli.CommandLine$RunLast.executeUserObjectOfLastSubcommandWithSameParent(CommandLine.java:2332) at picocli.CommandLine$RunLast.handle(CommandLine.java:2326) at picocli.CommandLine$RunLast.handle(CommandLine.java:2291) at picocli.CommandLine$AbstractParseResultHandler.execute(CommandLine.java:2159) at maestro.cli.DisableAnsiMixin$Companion.executionStrategy(DisableAnsiMixin.kt:22) at picocli.CommandLine.execute(CommandLine.java:2058) at maestro.cli.AppKt.main(App.kt:117)

github-actions[bot] commented 3 months ago

This issue has been automatically locked since there has not been any recent activity after it was closed. If you are still experiencing a similar problem, please file a new issue. Make sure to follow the template and provide all the information necessary to reproduce the issue. Thank you for helping keep us our issue tracker clean!