我在unittest
模塊的幫助下寫了大部分單元測試,但我不確定如何將它用於編譯器在編譯時應拒絕的代碼。例如,如果我想編寫下面的代碼並確保編譯器在編譯過程中始終出現錯誤(類型和模板將位於單獨的模塊中),那麼如何爲此編寫測試用例?如何爲在Nim中編譯失敗的代碼編寫單元測試?
import macros
type
T[n:static[int]] = object
template foo3(n: int): expr =
static:
if n > 3: error "n > 3"
type T3 = T[n]
T3
var
bar: foo3(4)
即使在「編譯」中,編譯仍會在遇到第一個「錯誤」調用時中止。所以沒有辦法使測試自動化。 – jxy
我也無法找到一種方法來將'compiles'的結果保存到用'unittest'編寫的運行時值中。 – jxy