Alle Beiträge von Michael Wowro

Die Datei oder Assembly "Ranorex.Core, Version=5.4.4.26486, Culture=neutral, PublicKeyToken=xxxxxxxxxxxxxx" oder eine Abhängigkeit davon wurde nicht gefunden

Nach dem Update von Ranorex auf meinem Computer, taucht beim Run meiner Ranorex-basierten Unittests folgender Fehler auf:

Managed Debugging Assistant 'BindingFailure' has detected a problem in 'C:\PROGRAM FILES (X86)\MICROSOFT VISUAL STUDIO 14.0\COMMON7\IDE\COMMONEXTENSIONS\MICROSOFT\TESTWINDOW\te.processhost.managed.exe'.
Additional information: Die Assembly mit dem Anzeigenamen "Ranorex.Core" konnte im "Load"-Bindungskontext der AppDomain mit ID 4 nicht geladen werden. Fehlerursache: System.IO.FileLoadException: Die Datei oder Assembly "Ranorex.Core, Version=5.4.4.26486, Culture=neutral, PublicKeyToken=xxxxxxxxxxxxxx" oder eine Abhängigkeit davon wurde nicht gefunden. Die gefundene Manifestdefinition der Assembly stimmt nicht mit dem Assemblyverweis überein. (Ausnahme von HRESULT: 0x80131040)

Lösung
Irgendwo besteht eine Verbindung zwischen dem installierten Ranorex und den im Testframework verwendeten Ranorex-dlls, sodass auch diese .dll’s auf den Versionsstand des installierten Ranorex gebracht werden mussten. Es könnte sein, dass Ranorex da sich so weit in das Windows-System „reingefressen“ hat, um die Umgehung ihrer Lizenznutzung zu verhindern.

Die Assembly mit dem Anzeigenamen „mscorlib.XmlSerializers“ konnte im „LoadFrom“-Bindungskontext der AppDomain mit ID 1 nicht geladen werden.

BindingFailure occurred
Message: Managed Debugging Assistant 'BindingFailure' has detected a problem in 'D:\temp\StarTrack\QS\Utils\TestautomationTools\TestExecutor2\bin\Debug\TestautomationTool.vshost.exe'.
Additional information: Die Assembly mit dem Anzeigenamen "mscorlib.XmlSerializers" konnte im "LoadFrom"-Bindungskontext der AppDomain mit ID 1 nicht geladen werden. Fehlerursache: System.IO.FileNotFoundException: Die Datei oder Assembly "mscorlib.XmlSerializers, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" oder eine Abhängigkeit davon wurde nicht gefunden. Das System kann die angegebene Datei nicht finden.

Diese Fehlermeldung tritt bei einem C#-Programm auf, welches Oberflächenelemente auf Windows scannt. Laut Stackoverflow kann man diese Fehlermeldung jedoch ignorieren.

Tools zur UI-Testautomation von Android Apps

Appium, welches in der Selenium-Welt berühmt ist, scheint mir nicht geeignet zu sein, langfristig angelegtes mobile testing zu betreiben.
Auch weitere Open-Source Projekte, die zu diesem Zweck ins Leben gerufen wurden, scheinen so langsam einzuschlafen, wie die Commit-Aktivitäten auf github nahelegen:
Robotium
robotium
Selendroid
Selendroid
So fallen diese drei Tools für diese Aufgabe aus. Die Frage, welches Tool Google eigentlich für die UI-Testautomatisierung von Android Apps nutzt, ist hier aus zweierlei Aspekten relevant. Erstens ist Google der Hersteller vom Android-Betriebssystem und hat daher genügend Insiderwissen, die richtigen Tools auszuwählen. Zweitens entwickelt Google selbst eine nicht unerhebliche Anzahl von geschäftskritischen Android Apps und muss diese natürlich auch zuverlässig testen.
Googles UI-Testautomatisierungslösung für Android Apps ist ohne Zweifel Espresso:
Artikel auf Googleblog
Talk auf Android Dev Summit
Talk auf Google I/O (inkl. tieferer Einblicke in Espresso-Codebase)

  • Reine Oberflächentests – simulieren Benutzerinteraktionen
  • Stark integriert in Android Development
    • Teil der Android Testing Support Library
    • Tests werden zusammen mit apk instrumentiert
    • Gestartet aus Android Studio
    • Im App-Code kann/muss man idle-Zustand setzen, damit Esspresso darauf reagiert.
    • Zum Programmieren in Java
  • It is intended to test a single application but can also be used to test across applications. If used for testing outside your application, you can only perform black box testing, as you cannot access the classes outside of your application. (Quelle)
  • Gutes Tutorial: http://www.vogella.com/tutorials/AndroidTestingEspresso/article.html#espresso_introduction