Sometimes you can run into issues when you run Appium. This can be caused by a driver mismatch or a version upgrade of Appium, or some configuration change on your machine. But how do you figure out what is going wrong?
The best way to troubleshoot is to get your hands on the log file that Appium can produce. But where is it located? That was my major issue when troubleshooting. The log files themselves often contain a ton of good information to help you solve the problem.
How to set up the logfile?
You can get a log file by adding a startup command-line argument and specifying the log location. So when you run your tests from a build or a test in, e.g., Visual Studio, the best way to get your log files consistently is by specifying this in your test setup code.
Most of my time in coding I spend using C#. So when you use the Appium test engine with C# you can use the class ServerBuilder. ServerBuilder has the option to use the .WithLogFile option where you can specify the location of the logfile.
You can write your code as follows to startup your test and always have a log file as part of your test run:
1 2 3 4 5 6 |
FileInfo fileInfo = new FileInfo( Path.Combine(_testContext.ResultsDirectory, "appiumlogfile.log") ); var _appiumLocalService = new AppiumServiceBuilder().UsingAnyFreePort() .WithLogFile(fileInfo).Build(); |
I assume you are using MSTest as the test framework in this code sample since I use the TestContext to obtain a location where I want to have the logfile published.