Development/Unit Tests/ja

From The Document Foundation Wiki
Jump to: navigation, search
本ページはGlobal Wikiからの有志による翻訳ページです。未翻訳があることや内容が古い場合があります。最新化、翻訳にご協力お願いします。
日本語独自の情報についてまとめることを目的として、日本語コミュニティによって運営されているページとして 日本語コミュニティ独自ページ があります。
URLが wiki.documentfoundation.org/JA で始まっていて、カテゴリーがJAのページです。
そちらもご利用ください。

前文

このページでは、LibreOffice のユニットテストを新たに作るときの方法を述べます。パッチを提供する場合は、対応するユニットテストも提供するようトライしてください。あなたの新しい機能の使い方や何について修正されたのかを、みんながより良く理解できることでしょう (また、リグレッションを除去できることでしょう)

This page is meant to describe how to create new Unit tests for LibreOffice. If you provide a patch on a lib, please try to provide corresponding unit tests. They'll allow a better understanding on how to use your new features or about what has been corrected (and will avoid regressions).

注意: non-developers could help も、なにがしかのユニットテストを改善するものです。

Note that even non-developers could help to improve some unit tests.

新しいテストの追加

テスト・ケースの定義

テストは、test_xxx.cxx というファイル名で、サブディレクトリ qa/ の中に置くのがよいでしょう。最初に、クラスを作らなくてはなりません。基本的なテスト・スケルトンとなるものはこれです:

The tests should be placed in qa/ subdir in a file named test_xxx.cxx. First, you've to create your class. Here's what can be a basic test skeleton:

#include "sal/config.h"
#include "sal/precppunit.hxx"

#include "cppunit/TestAssert.h"
#include "cppunit/TestFixture.h"
#include "cppunit/extensions/HelperMacros.h"
#include "cppunit/plugin/TestPlugIn.h"

namespace
{
/**
 * Perform tests on MyClass.
 */
class MyClassTest : public CppUnit::TestFixture
{
private:
    /**
     * Tests capability Foo of the class.
     */
    void testFoo();

    // Adds code needed to register the test suite
    CPPUNIT_TEST_SUITE(MyClassTest);
    // Declares the method as a test to call
    CPPUNIT_TEST(testFoo);
    // End of test suite definition
    CPPUNIT_TEST_SUITE_END();
};

void MyClassTest::testFoo()
{   
    CPPUNIT_ASSERT(true); // do the tests here
}

// Put the test suite in the registry
CPPUNIT_TEST_SUITE_REGISTRATION(MyClassTest);

} // namespace
CPPUNIT_PLUGIN_IMPLEMENT();

Write one or more test functions and test various capabilities of the class. See CppUnit tutorial for further details about testing with CppUnit.

ビルド時のテストの実行

Now that your test class is ready, you need to compile and run it. This means creating file CppunitTest_module_test.mk (substitute module and test name as appropriate) in the toplevel (module) directory if it does not exist yet:

$(eval $(call gb_CppunitTest_CppunitTest,module_test))

$(eval $(call gb_CppunitTest_add_exception_objects,module_test, \
module/qa/cppunit/test_xxx \
))

# add a list of all needed libraries here
$(eval $(call gb_CppunitTest_add_linked_libs,module_test, \
sal \
$(gb_STDLIBS) \
))

$(eval $(call gb_CppunitTest_set_include,module_test,\
$$(INCLUDE) \
-I$(OUTDIR)/inc \
))

You will also need to edit Module_module.mk and add the following (or add to the list if it already exists):

$(eval $(call gb_Module_add_check_targets,module,\
     CppunitTest_module_test \
)) 

To build and run the tests, simply run make check. If the build succeeds, the tests will run automatically.

So, once your tests are running, all you need to do is fix any bugs they uncover.