2009-07-10 6 views
1

J'implémente actuellement un wrapper .NET pour une bibliothèque Java en utilisant JNI pour démarrer JavaVM et interagir avec les classes Java. Pour être sur le côté de la sauvegarde, j'aimerais avoir des tests unitaires pour mon code.C#, C++/cli: Comment tester un composant qui ne peut être chargé qu'une seule fois par processus?

Le problème auquel je suis confronté est que vous ne pouvez démarrer la machine virtuelle Java qu'une seule fois par processus. Il n'y a aucune possibilité de décharger la JVM. Cela rend difficile l'écriture de tests unitaires réellement propres.

Quelques spécifications: Interface .NET/Java: en C++/cli tests unitaires lib: NUnit code de test unitaire: C#

Des conseils?

Cordialement, Dominik

+0

chargement de la machine virtuelle Java à l'aide de JNI dans un projet C++/CLI. Soit vous vous ennuyez ou travaillez sur quelque chose de très très intéressant .... – Spence

+0

@Spence: Je dirais intéressant! :) C'est en fait un wrapper pour une très petite API (5 classes) vers une librairie Java existante (la lib a plus de 6000 LOC) que nous utilisons en interne. Réécrire la fonctionnalité et conserver deux arbres sources ne semblait pas vraiment une option. –

Répondre

1

Vous pouvez créer une application de test .Net ad hoc, qui fonctionnerait sur son propre processus. Vos tests NUnit lancent donc ce processus (même en ligne de commande), permettent d'exécuter les tests et renvoient la valeur en sortie std. IOW, restez simple et lancez de nombreux processus.

Questions connexes