2

チームの他のメンバーとは別の perforce ストリームでは、プロジェクトで CppUnitTestFramework テストを実行できませんが、残りのストリームではテストが問題なく実行されます。

コード スニペットを次に示します。

TEST_CLASS(MyClass)
{
    BEGIN_TEST_CLASS_ATTRIBUTE()
        TEST_CLASS_ATTRIBUTE(L"Type", L"Native C++ Unit Tests")
        TEST_CLASS_ATTRIBUTE(L"TestClass", L"MyClass")
        END_TEST_CLASS_ATTRIBUTE()

public:

    TEST_METHOD(canFooTheBar)
    {
        ...
        Assert::IsTrue(foo());
    }
...
}

テストを実行しようとしたときに表示されるエラーは次のとおりです。

------ Discover test started ------
Object reference not set to an instance of an object.
========== Discover test finished: 0 found (0:00:00.5129487) ==========
No tests found to run.

異なるストリーム間の .sln または関連する .vcxproj ファイル間に差分はありません。

4

1 に答える 1

2

考えられる理由は、(同じプロジェクト内に) テストを持たないテスト クラスがあることです。

そのようなクラスを削除すると、問題が解決する場合があります。

次のクラスをプロジェクトに追加すると、問題が再現されます。

TEST_CLASS(MyEmptyClass)
{
    BEGIN_TEST_CLASS_ATTRIBUTE()
        TEST_CLASS_ATTRIBUTE(L"Type", L"Native C++ Unit Tests")
        TEST_CLASS_ATTRIBUTE(L"TestClass", L"MyEmptyClass")
        END_TEST_CLASS_ATTRIBUTE()

public:
    //no tests
}
于 2014-08-27T13:50:28.623 に答える