簡體   English   中英

如果訂單已知,是否可以找到 GoogleTest 運行特定訂單的種子?

[英]Is it possible to find the seed for GoogleTest to run a specific order if the order is known?

我收到了一份包含 25 個測試的列表以及運行它們的命令,據說這會導致最后一次測試失敗。 不幸的是,用於查找此故障的工具並未保存 GoogleTests shuffle 用於觸發此訂單的種子。

因此,我當然可以使用 shuffle 運行測試並重復大量次,直到觸發此命令,但是有很多排列需要解決。 據我所知,除了知道觸發訂單的種子之外,沒有辦法只用 GoogleTest 說“嘿,按這個順序運行這些測試”。

我希望有一種方法可以在不實際運行測試的情況下找到該種子 - 理想情況下,可以給出所需的順序和 output 種子,但實際上只是給出 gtest_filter 值的東西只是轉儲了大量潛在的測試訂單和觸發它們的種子會很好。

有沒有什么選擇,或者我只是在隨機播放直到我得到它?

沒有這樣的選項來指定測試的順序。

但是,默認情況下(即如果--gtest_shuffle未啟用),它們按聲明順序運行。

我可以想到三種方法來實現你想要的:

  1. 使用您最喜歡的腳本語言(例如 bash、python、nodejs 等)和正則表達式將測試的原始順序修改為您想要的順序並創建一個新的測試文件,然后您可以在沒有--gtest_shuffle的情況下運行。

  2. 侵入谷歌測試的源代碼。 您可以修改shuffle function以按照您想要的順序隨機播放代碼。

  3. 查看以編程方式注冊測試 我認為您也許可以按照您想要的順序一一注冊您的測試,並且我認為 Googletest 會遵守該順序。 但這也需要處理您的原始測試文件。

顯然,這些方法都不是理想的,但它們可能適用於一次性實驗以找到您想要的順序。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM