簡體   English   中英

僅在一項 GitHub 操作作業上運行測試

[英]Run testthat tests on only one GitHub actions job

package的某些測試需要在單個測試服務器上反復刪除和寫入數據。 我不能同時運行這些測試,因為它們會相互干擾。

三個目標:

  1. 我想在三個不同的操作系統(Ubuntu、macOS 和 Windows)上運行 GitHub 操作作業。
  2. I'd like to run the delete+write tests only on the Ubuntu job on GitHub --I want to skip them for mac & Windows only if it's run on GitHub actions.
  3. 但我不希望在某人的本地 mac 或 Windows 機器(和Win-Builder )上運行時跳過它們。 從理論上講,兩個開發人員可能會互相踩到對方的腳趾,但這種情況發生得太少,根本不在乎。

幾點注意事項:

  • 理想情況下,目標服務器的一個版本臨時啟動並托管在 GitHub 操作中。 但是,我不確定REDCap許可證是否允許這樣做。
  • 大約 20% 的約 200 次測試應該被跳過。 rest 要么不調用服務器,要么是只讀操作。 因此,兩個作業/操作系統是否同時運行它們並不重要。
  • 在所有作業中,所有非測試部分都應運行 R-CMD 檢查(例如,檢查 package 依賴項和小插曲)。

有沒有辦法將跳過的測試與GitHub 動作環境變量結合起來? 有更好的解決方案嗎?

jobs.<job_id>.steps[*].if有助於完成您想要的? 例如,如果您為 macOS、Ubuntu 和 Windows 設置了一個矩陣操作系統構建,並且有一個用於測試設置、執行和拆卸的步驟,您可以在該步驟中添加一個if指令,以僅在操作系統以'ubuntu': if: startsWith(${{matrix.os}}, 'ubuntu')

暫無
暫無

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

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