2015-03-05 4 views
5

निष्पादित किया गया है। मैं अपनी परियोजना के लिए निर्माण प्रणाली के रूप में सीएमके और निंजा को कॉन्फ़िगर करने की कोशिश कर रहा हूं। ऐप को छोड़कर मेरे पास gtest द्वारा संचालित यूनिट परीक्षणों के लिए अतिरिक्त निष्पादन योग्य है। मैंने सोचा कि जब भी वे बनाए जाते हैं तो उन्हें स्वचालित रूप से निष्पादित करना अच्छा लगेगा। यहाँ कैसे मैं इसे बनाया है:सीएमके + निंजा के साथ निर्मित होने पर जीटीएस्ट के आउटपुट में कोई रंग नहीं है और स्वचालित रूप से

├── build 
└── source 
    ├── CMakeLists.txt 
    ├── main.cc 
    └── ut 
     ├── CMakeLists.txt 
     ├── gtest 
     │   ├── ... 
     └── ut.cc 

स्रोत/CMakeLists.txt ...

cmake_minimum_required (VERSION 2.6) 
project (trial) 
add_subdirectory(ut) 
add_executable(trial main.cc) 

... और स्रोत/केन्द्र शासित प्रदेशों/CMakeLists.txt:

add_subdirectory(gtest) 
include_directories ("gtest/include") 

add_executable(ut ut.cc) 
target_link_libraries(ut LINK_PUBLIC gtest_main) 

add_custom_target(run_uts 
        COMMAND ut 
        DEPENDS ut 
        WORKING_DIRECTORY ${CMAKE_PROJECT_DIR} 
       ) 
अब

जब मैं इसे बनाएं, यानी:

cd build 
cmake -GNinja ../source 
ninja run_uts 

यह आउटपुट को छोड़कर ठीक काम करता है रंगहीन है जब मैं हाथ से बाइनरी चलाता हूं, यानी build/ut/ut मुझे अच्छा हरा और लाल रंग मिलता है। जब मैं यूनिक्स मेकफ़ाइल का उपयोग सीएमके के लिए जेनरेटर के रूप में करता हूं तो रंग भी होते हैं।

चूंकि मैं केवल सीएमके सीख रहा हूं, क्या मुझे कुछ याद आया है या क्या यह निंजा के साथ एक मुद्दा है?

उत्तर

7

मुझे लगता है कि आपका स्वचालित कोड gtest निष्पादन योग्य चलाता है और आउटपुट को फ़ाइल में निर्देशित करता है। डिफ़ॉल्ट रूप से, gtest टर्मिनल पर आउटपुट भेजते समय केवल रंग अनुक्रम जोड़ता है। किसी फ़ाइल या पाइप पर भेजे गए आउटपुट में रंग अनुक्रम जोड़ने के लिए इसे मजबूर करने के लिए, --gtest_color=yesoption के साथ अपने परीक्षण निष्पादन योग्य चलाएं।

+1

ठीक है, वास्तव में मेरा कोड सीधे आउटपुट को टर्मिनल पर रखता है, लेकिन आपकी सलाह ने वैसे भी मदद की! मेरा सबसे अच्छा अनुमान यह है कि (इस धागे के अनुसार: https://github.com/martine/ninja/issues/174) निंजा इसे यहां एक पाइप पर रखता है। कम से कम यह बताता है कि यह मेकफ़ाइल के साथ क्यों काम करता है। –

संबंधित मुद्दे

 संबंधित मुद्दे