有一個生成二進制應用程式的小專案。源代碼是 C,我正在使用自動工具來創建Makefile和構建二進制檔案 - 它也可以。
我想用那個二進制檔案運行測驗用例。這是我所做的:
SUBDIRS = src
dist_doc_DATA = README
TESTS=
TESTS =tests/config1.conf
TESTS =tests/config2.conf
TESTS =tests/config3.conf
TESTS =tests/config4.conf
TESTS =tests/config5.conf
TESTS =tests/config6.conf
TESTS =tests/config7.conf
TESTS =tests/config8.conf
TESTS =tests/config9.conf
TESTS =tests/config10.conf
TESTS =tests/config11.conf
我想使用該工具將這些案例作為引數運行。當我跑步時make check,我得到:
make[3]: Entering directory '/home/airween/src/mytool'
FAIL: tests/config1.conf
FAIL: tests/config2.conf
FAIL: tests/config3.conf
這是正確的,因為這些檔案是簡單的組態檔。
我該如何解決make check使用上面的腳本運行我的工具的問題,最后我得到一個包含成功、失敗、...測驗數量的串列,就像在這種情況下:
============================================================================
Testsuite summary for mytool 0.1
============================================================================
# TOTAL: 11
# PASS: 0
# SKIP: 0
# XFAIL: 0
# FAIL: 11
# XPASS: 0
# ERROR: 0
編輯:所以我想模擬這些運行:
for f in `ls -1 tests/*.conf; do src/mytool ${f}; done
但是 - 當然 - 我想在最后看到摘要。
謝謝。
uj5u.com熱心網友回復:
Autotools 的內置測驗運行器希望您通過make變數指定可執行測驗的名稱TESTS。您不能只是將隨機檔案名放在那里并期望makeAutomake 知道如何處理它們。
測驗可以是構建的程式、生成的腳本、與專案一起分發的靜態腳本,或以上的任意組合。
如何解決 make check 使用上面的腳本運行我的工具,最后我得到一個[測驗總結報告]?
你已經承認你的組態檔不是腳本,所以停止呼叫它們!這實際上是問題的癥結所在。最簡單的解決方案可能是創建實際的可執行腳本,每種情況一個,并在變數中命名。TESTS每個人都將使用適當的組態檔運行被測驗的二進制檔案(也就是說,如果這些是您想要執行的測驗,您有責任讓他們這樣做)。
另請參閱Automake 手冊中有關測驗的章節。
uj5u.com熱心網友回復:
好的,來自這里的解決方案:
tests/Makefile.am:
==================
TEST_EXTENSIONS = .conf
CONF_LOG_COMPILER = ./test-suit.sh
TESTS=
TESTS =config1.conf
TESTS =config2.conf
TESTS =config3.conf
TESTS =config4.conf
TESTS =config5.conf
TESTS =config6.conf
TESTS =config7.conf
TESTS =config8.conf
TESTS =config9.conf
TESTS =config10.conf
TESTS =config11.conf
test/test-suit.sh:
==================
#!/bin/sh
CONF=$1
exec ../src/mytool $CONF
結果:
make check
...
PASS: config1.conf
PASS: config2.conf
PASS: config3.conf
PASS: config4.conf
PASS: config5.conf
PASS: config6.conf
PASS: config7.conf
PASS: config8.conf
PASS: config9.conf
PASS: config10.conf
PASS: config11.conf
============================================================================
Testsuite summary for mytool 0.1
============================================================================
# TOTAL: 11
# PASS: 11
# SKIP: 0
# XFAIL: 0
# FAIL: 0
# XPASS: 0
# ERROR: 0
============================================================================
這是我所期望的。
轉載請註明出處,本文鏈接:https://www.uj5u.com/caozuo/457509.html
