Unit-Tests
Mit Babel Obfuscator können Sie Ihre Unit-Tests auch nach der Verschleierung des Codes weiterverwenden. Dazu konfigurieren Sie Babel Obfuscator so, dass der Code verschleiert wird und die Unit-Tests gegen den verschleierten Code laufen. Diese Einrichtung erfordert eine XML-Map-Datei. Sie hilft, Probleme zu lösen, die entstehen können, wenn die Unit-Tests auf interne Klassen zugreifen. So stellen Sie sicher, dass die Unit-Tests auch nach der Verschleierung des Codes verlässliche und genaue Ergebnisse liefern. Das hilft, die Qualität des Codes zu erhalten, und stellt sicher, dass er nach der Verschleierung weiterhin wie vorgesehen funktioniert.
Um Unit-Tests gegen verschleierten Code auszuführen, müssen Sie mit Babel Obfuscator eine XML-Map-Datei verwenden. Mit der XML-Map-Datei verfolgt Babel Obfuscator die Namen der Klassen, Methoden und Variablen in Ihrer Ziel-Assembly und sorgt dafür, dass sie auch nach der Verschleierung konsistent bleiben. Das ist wichtig, weil Unit-Tests oft von der inneren Struktur Ihres Codes abhängen und bestimmte Klassen, Methoden oder Variablen referenzieren. Ändern sich diese Referenzen bei der Verschleierung, können die Unit-Tests nicht mehr auf die benötigten Elemente zugreifen, und die Tests schlagen fehl.
Um dieses Problem zu lösen, erzeugt Babel Obfuscator für die Ziel-Assembly eine XML-Map-Datei, die die ursprünglichen Namen Ihrer Klassen, Methoden und Variablen vor der Verschleierung festhält. Bei der Verschleierung aktualisiert Babel Obfuscator die Namen in der Map-Datei, sodass sie den verschleierten Namen entsprechen. Die Unit-Tests lassen sich dann mit Babel Obfuscator und der erzeugten Map-Datei verarbeiten, sodass sie auf die richtigen verschleierten Namen zugreifen und korrekt gegen den verschleierten Code laufen.
Babel für Unit-Tests konfigurieren
Um Babel Obfuscator mit Ihren Unit-Tests zu verwenden, führen Sie die folgenden Schritte aus:
NuGet-Paket referenzieren
Fügen Sie dem Unit-Test-Projekt eine Referenz auf das NuGet-Paket von Babel Obfuscator hinzu.
XML-Map-Datei laden
Ändern Sie das Projekt, indem Sie MSBuild-Anweisungen hinzufügen, mit denen Babel die für die Ziel-Assembly erzeugte XML-Map-Datei lädt.
Umbenennung ausschalten
Das Unit-Test-Projekt braucht keine Umbenennung, schalten Sie sie also aus.
<PropertyGroup>
<ObfuscateTypes>false</ObfuscateTypes>
<ObfuscateProperties>false</ObfuscateProperties>
<ObfuscateMethods>false</ObfuscateMethods>
<ObfuscateParameters>false</ObfuscateParameters>
<ObfuscateFields>false</ObfuscateFields>
<ObfuscateEvents>false</ObfuscateEvents>
</PropertyGroup>
<ItemGroup>
<MapInFile Include="$(SolutionDir)/MapOut/ClassLibrary.dll.map.xml" />
</ItemGroup>Dabei ist ClassLibrary.dll.map.xml die XML-Map-Datei, die für die getestete Ziel-Assembly erzeugt wurde.
Auf diese Weise führen Sie Ihre Unit-Tests gegen den verschleierten Code aus, und die XML-Map-Datei löst alle Probleme mit Referenzen auf verschleierte Namen, die der Code der Unit-Tests verwendet. Mit dieser Einrichtung funktionieren Ihre Unit-Tests auch dann weiter, wenn Ihr Code verschleiert wird.
Das Beispielprojekt ausführen
Das Beispielprojekt können Sie hier herunterladen. Um es auszuführen, folgen Sie den nachstehenden Anweisungen:
Archiv entpacken
Entpacken Sie die Datei UnitTest.zip in einen Ordner auf Ihrem Computer.
Lizenzdatei kopieren
Kopieren Sie Ihre Lizenzdatei in den entpackten Ordner.
Terminal öffnen
Öffnen Sie eine Eingabeaufforderung oder ein Terminalfenster und wechseln Sie in den Ordner, in den Sie die Dateien entpackt haben.
Tests ausführen
Geben Sie den Befehl „dotnet test“ ein, um das Beispielprojekt auszuführen.

Ausgabe der Unit-Tests