Probando una aplicación de Windows 8 Store con NUnit

Actualmente estoy trabajando en una aplicación de la Tienda Windows (Windows 8) para una clase y tengo problemas para que se ejecuten mis pruebas NUnit.

La configuración de Mi Solución / Proyecto se parece a la siguiente:

TheMetroApp.sln

SQLite-net.csproj - Biblioteca de clases (aplicaciones de la Tienda Windows). Los archivos se extraen de NuGet.DataModel.csproj - Class Library (Aplicaciones de la Tienda Windows)UnitTests.csproj - Unit Test Library (aplicaciones de la Tienda Windows). NUnit framework se extrae de NuGet.TheMetroApp.csproj: un archivo de proyecto que se extrajo de uno de los ejemplos de Windows SDK.

Misceláneo Dependencias y Utilidades

Windows 8 Pro RTM / Visual Studio 2012 RTMReSharper 7NUnit 2.6.1SQLite (Configuración según las instruccionesaquí)

UnitTests depende de y hace referencia a DataModel. DataModel depende y hace referencia a SQLite-net. Lo único que he agregado al proyecto UnitTests es una clase única que contiene algunas pruebas unitarias de unidad NUnit. Por lo que puedo decir, estos están configurados correctamente:

[TestFixture]
public class TaskSourceTests
{
    #region Private Class Members

    private ITaskSource _taskSource;
    private String _dbPath;

    #endregion

    #region Testing Infrastructure

    [SetUp]
    public void SetUp()
    {
        // This part makes NUnit/ReSharper have problems.
        _dbPath = Path.Combine(ApplicationData.Current.LocalFolder.Path, "UnitTestDatabase.sqlite");
    }

    #endregion

    #region Misc. CRUD stuff

    [Test]
    public void CreateTaskTest()
    {
        // Save the task.
        Task task = new Task( "Some Task", "lol.", DateTime.Now, false );
        _taskSource.Save( task );

        // Confirm that it is in the task db.
        using( SQLiteConnection db = new SQLiteConnection( _dbPath ) )
        {
            const String query = "SELECT * FROM Task WHERE Id = ?";
            IList<Task> results = db.Query<Task>( query, task.Id );
            Assert.True( results.Contains( task ) );
        }
    }

    // ...and so on [but with stubs that are basically Assert.Fail( "" )].

    #endregion
}

TheMetroApp es uno de los proyectos de muestra del SDK de Windows 8, pero con algunos formularios XAML personalizados incluidos. No tengo ningún problema con este proyecto.

Mi problema es que ninguno de los corredores de pruebas de unidad que he intentado usar está funcionando.

Cuando trato de usar el corredor de prueba oficial NUnit x86 (versión 2.6.1), mis pruebas fallan debido a problemas relacionados con el certificado(mira aquí):

UnitTests.TaskSourceTests.CreateTaskTest:
SetUp : System.InvalidOperationException : The process has no package identity. (Exception from HRESULT: 0x80073D54)

El corredor de prueba NUnit de ReSharper falla por la misma razón. Desafortunadamente, no parece que actualmente haya una solución para eso.

También he intentado usar el corredor de prueba integrado en Visual Studio 2012 (a través delAdaptador de prueba NUnit Visual Studio). Cuando intento ejecutar mis pruebas usando "Ejecutar todo", obtengo el siguiente resultado:

------ Run test started ------
Updating the layout...

Checking whether required frameworks are installed...

Registering the application to run from layout...

Deployment complete. Full package name: "GibberishAndStuff"

No test is available in C:\Projects\project-name\ProjectName\UnitTests\bin\Debug\UnitTests.dll. Make sure that installed test discoverers & executors, platform & framework version settings are appropriate and try again.
========== Run test finished: 0 run (0:00:09.4873768) ==========

Algo extraño que he notado es que si selecciono una prueba específica en el Explorador de pruebas y le digo que se ejecute, aparece un mensaje de error ligeramente diferente:

Could not find test executor with URI 'executor://nunittestexecutor/'.  Make sure that the test executor is installed and supports .net runtime version 4.0.30319.18010.

Esto es algo desconcertante porque tengo instalado el adaptador de prueba NUnit. No veo nada similar a mi problema en la página del launchpad para el adaptador de prueba.

No estoy realmente seguro de dónde debo proceder desde aquí. Si esto no funciona, no me importa volver a trabajar en mi proyecto para usar xUnit.net, el marco de prueba de unidades de Microsoft o algo más. Sería bastante asombroso si pudiera hacer que NUnit funcione.

¡Gracias!

Respuestas a la pregunta(2)

Su respuesta a la pregunta