TDD 測試驅動開發流程
這篇是記錄我在看鐵人賽 Python 與自動化測試的敲門磚 的過程 TDD 簡介TDD 全名為 Test-Driven Development 中文翻譯為 「測試驅動開發」,顧名思義就是藉著撰寫測試程式,來一步一步建構出我們的系統,其倡導的概念為,先撰寫測試程式,再撰寫實際相對應的 function,因此程式開發者需要先行和 PM 或使用者討論系統需求,並逐步擬定測試計畫,最後才會真正開始撰寫程式 採用 TDD 開發的優缺點 好處 壞處 無須事後再補寫測試程式 若系統需求溝通不良,會容易造成系統設計不良 每一位 RD 都可以透過測試程式了解每個 function 的內容,較容易熟悉系統 測試程式有很大的機率只有 RD 部門看得懂,需要花費多於成本溝通 可以確保每個 function 被更動時,可以馬上進行測試,降低錯誤產生 3A 原則在 TDD 當中,對於每個測試程式的撰寫有著 3A 原則 (步驟),分別為 Arrange、Act 以及 Assert,下面按照順序來進行說明 下面這段程式碼是我們在 demo 3A...
在Windows上安裝 pnpm
前言因為練習Next.js 開發blog 需要安裝 pnpm 紀錄一下 windows 上如何安裝pnpm 後來在這篇文章找到解決方法 參考影片: https://www.youtube.com/watch?v=q5iDjNR1O7Y&ab_channel=GeekyScript 打開CMD執行以下指令1set-ExecutionPolicy RemoteSigned -Scope CurrentUser 以上是一個 PowerShell 命令set-ExecutionPolicy:這是 用於設置執行策略。 RemoteSigned:這是一個執行策略的值。在這種情況下,它表示允許執行本地(在本機計算機上)簽名過的腳本,但來自遠程位置(例如網絡上的腳本)的腳本需要經過簽名才能執行。這有助於提高安全性,因為它可以防止遠程未經信任的腳本在你的系統上運行。 -Scope CurrentUser:這部分指定了執行策略的作用範圍。在這種情況下,它設置執行策略只對當前使用者(CurrentUser)生效,而不會影響其他使用者。這是一種局部的設置,只影響當前使用者的...
使用docker執行jenkins
使用docker執行jenkins拉取docker hub上的jenkins image1docker pull jenkinsci/blueocean 運行docker 鏡像命令12345678910docker run \ -u root \ --rm \ -d \ -p 8081:8080 \ -p 50000:50000 \ -v jenkins-data:/root/docker/jenkins_home \ -v $PWD/allure-results:/allure-results \ -v /var/run/docker.sock:/var/run/docker.sock \ jenkinsci/blueocean 執行後可以看見docker 運行的狀況 打開8081 port,登入jenkins首頁http://localhost:8081/ 進入容器取得管理員密碼點擊docker 點擊 Terminal 輸入 cat...
Pytest 自動測試
Pytest 指令1pytest <.py 檔案位置> 範例:pytest .\day_03\test_demo.py 參數執行1.列出每個 test case 的執行狀況 1pytest -v <目錄 or 檔案位置> 2.會印出在 test case 內有 print 出來的數值 1pytest -s <目錄 or 檔案位置> 3.不同的參數間,也可以進行混用,這邊進行簡單的範例展示 1pytest -s -v <目錄 or 檔案位置>: 產生報表產出 JSON 格式報表安裝 pytest-json-report 套件1pip install pytest-json-report 套件使用1pytest <pytest 原生參數 ex: -s -v> --json-report --json-report-file=<檔案名稱 or ./目錄位置/檔案名稱> <要執行的 .py 檔案 (可省略直接對整個目錄做讀取)> 使用範例:pytest -s -v –json-report...
Python 與自動化測試
前言這篇是記錄我在看鐵人賽 Python 與自動化測試的敲門磚 的過程 主題 主題 日程 簡介 day 01 Pytest day 02 ~ 10 TDD day 11 ~ 12 Selenium day 13 ~ 17 Appium day 18 ~ 21 CI/CD day 22 ~ 26 Jenkins day 27 ~ 29 結語 day 30 PytestPytest 是一種使用在 Python 語言裡面的一中單元測試框架,而 Pytest 基本上就是由 Python 原生自帶的單元測試框架 Unittest 衍生出來的,所以可以看到有些範例可以和 Unittest 的套件互相兼容混用。 Pytest 和 Unittest 相比,有下列幾項優點: 更易於上手,撰寫 testcase 時較為直覺 擴展性高,可以兼容許多外掛套件 可以標註某些 testcase 為失敗是正常的 測試程式撰寫起來相較於 unittest 較為簡潔 TDDTDD 完整名稱為 Test-driven development,中譯為...
Node.js 學習筆記 - NCU 版本檢查介紹及其安裝步驟
Node.js 學習筆記 - NCU 版本檢查介紹及其安裝步驟前言在使用 Node.js 開發時,版本問題和各種相依性問題常常導致每次在執行 npm install 後,專案啟動時出現錯誤,這真的是非常煩惱。不過,在看到這篇文章 無痛更新專案中的 npm 相依套件 後,我發現原來有一個名為 npm-check-updates 的工具可以使用,這真的解決了許多問題。 什麼是NCU?NCU (npm-check-updates) 是一個用於 Node.js 的套件,它可以檢查您的 npm(Node Package Manager)項目中的套件,並提示您可用的更新版本。這個工具可以幫助開發者輕鬆地確保他們的項目中使用的套件都是最新版本,從而提高代碼的安全性和可靠性。 檢查過時的版本首先,我們可以使用 npm outdated 來檢查專案中有哪些套件是過時的: 1npm outdated 這個命令會列出所有需要更新的套件及其版本資訊。 畫面中可以看到我的部落格專案中有4個套件需要更新了。 安裝 ncu (npm-check-updates) 工具接下來,我們來介紹...
Next.js 實作 Blog 功能
前言這篇是參考 鐵人賽 系列文章 「從零開始打造炫砲個人部落格」系列簡介 - Modern Next.js Blog 系列 實作的紀錄,實際操作上有遇到很多問題,但大致上跟著git修改的部分調整都可以修改成功。 這篇的解說很清楚,彙整的也很完整,推薦跟著教學文章操作。 使用的前端技術 功能 Next.js 工具 UI 樣式 Tailwind CSS 多語系 next-i18next SEO meta tags next-seo 指令面板 kbar 留言系統 giscus 換頁進度條 nprogress 更扎實的 JavaScript TypeScript 統一程式碼格式 ESLint, Prettier Markdown/MDX 文章處理 Contentlayer 網站託管 Vercel Next.js:現代全端框架Vercel:網站託管Contentlayer:Markdown/MDX 文章處理 參考文章:...
在Codespace 上運行Python
在Codespace 上運行Python範例原始碼放在 GitHub Repo: vscode-remote-try-python 參考文章:Setting up a Python project for GitHub Codespaces 1. 在 codespace 上開啟 projectGo to https://github.com/microsoft/vscode-remote-try-python.Click Use this template, then 點擊 Open in a codespace. 2: 新增 dev container 設定檔案1.使用 Visual Studio Code 指令 (Ctrl+Shift+P/Shift+Command+P),然後輸入 add dev 點擊 Codespaces: Add Dev Container Configuration Files. 點擊 Create a new...
Codespaces 上運行 Laravel Docker
Codespaces 上運行 Laravel Docker 前言目前因為想要練習 Laravel,所以看到一篇在 Github Codespaces 上運行Laravel 的文章所以來實作,並將結果放在這邊 1.創建 Github Repository 從 Laravel Docker 範例 https://github.com/rakibdevs/laravel-docker點擊 Use this template 2.建立 Codespace 3. Build Docker Container下載必要的套件,並根據Dockerfile 建立 Docker image 1$ docker compose build 完成後可以執行以下指令開啟 Docker container: 1$ docker-compose up -d 4.下載 Laravel12$ sudo chmod 777 src/$ docker compose exec php composer create-project --prefer-dist laravel/laravel . Now...
Hexo + Github 建立部落格
Hexo + Github 建立部落格為什麼想要架設 Blog身為一個工程師,不知不覺也工作了四年,工作上使用的套件不管是前端、後端、框架都越來越多,所以想記錄自己曾使用過的套件,要用的時候可以很快的查到。 建立自己的工具箱 累積屬於自己在技術專業知識品牌 可以作為作品集展示 另外想紀錄什麼都可以寫上去 為什麼選 Hexo 可以免費放在Github 上 可以選好看的主題 支援 Markdown (因為之前有在用 hackmd 紀錄文件) 查找到感覺最完整的架設教學文章是這篇 https://chanchandev.com/note/Hexo/hexo-introduction/2335841689/#%E7%82%BA%E4%BB%80%E9%BA%BC%E8%A6%81%E6%9E%B6%E8%A8%AD-Blog 所以就決定跟著來一起嘗試架設Blog 環境設定NodeJs https://nodejs.org/en 有用Node js 推薦也一起使用...