Open in app

Sign In

Write

Sign In

Canhua Li
Canhua Li

18 Followers

Home

About

Dec 8, 2021

JS: use clang-format-launcher to clang-format your project with ease

If your project is very complex, you may run into these situation: Aglob pattern is not enough to filter the files in your project. For example, it has a lot of generated files need to be excluded. The formatting is very slow. If that’s the case, you may try clang-format-launcher which is a wrapper of clang-format, but ease you from handling complex glob rules by yourself. clang-format-launcher runs git ls-tree -r — name-only — full-tree HEAD first to get the list of files which is checked into, then filter the files with predefined rules in package.json or clang.format.json. Below is an example to support npm run format to format your project and npm run verify to verify the format in pipeline.

Clang Format

2 min read

JS: use clang-format-launcher to clang-format your project with ease
JS: use clang-format-launcher to clang-format your project with ease
Clang Format

2 min read


Dec 7, 2021

Tips to build a Todo app with react, redux-saga, typescript and react-bootstrap — 2

This is a follow up on Tips to build a Todo app with react, redux-saga, typescript and react-bootstrap — 1 | by Canhua Li | Nov, 2021 | Medium Source code: licanhua/react-todo: A todo project with `react` + `typescript` + `redux-saga` + `react-bootstrap` (github.com) Module-Actions In last chapter, we created…

Redux Saga

3 min read

Tips to build a Todo app with react, redux-saga, typescript and react-bootstrap — 2
Tips to build a Todo app with react, redux-saga, typescript and react-bootstrap — 2
Redux Saga

3 min read


Dec 5, 2021

How do I build my first homepage with GitHub Pages and Gatsby

Last week, I built my home page with Gatsby and GitHub Pages. This article only shares how the tools are chosen and what kind of problem I met. …

Gatsby

4 min read

How do I build my first homepage with GitHub Pages and Gatsby
How do I build my first homepage with GitHub Pages and Gatsby
Gatsby

4 min read


Nov 30, 2021

Tips to build a Todo app with react, redux-saga, typescript and react-bootstrap — 1

Goal As a developer, I want to build a React To-do List App with react, redux-saga, typescript and react-bootstrap. This is not a step by step tutorial, but I would like to cover some tips on how I developed this project. …

React

5 min read

Tips to build a Todo app with react, redux-saga, typescript and react-bootstrap — 1
Tips to build a Todo app with react, redux-saga, typescript and react-bootstrap — 1
React

5 min read


Nov 29, 2020

Inspecting UI Elements for WinAppDriver automation using Appium Desktop — Continued

This is a follow up on Inspecting UI Elements for WinAppDriver automation using Appium Desktop | by Canhua Li | Medium Appium and WinAppDriver version has a hard binding relationship, here is an way to inspect any version of WinAppDriver with Appium desktop. Software Preparation WinAppDriver: Releases · microsoft/WinAppDriver (github.com) …

Appium Desktop

2 min read

Inspecting UI Elements for WinAppDriver automation using Appium Desktop — Continued
Inspecting UI Elements for WinAppDriver automation using Appium Desktop — Continued
Appium Desktop

2 min read


Nov 29, 2020

Tips to integrate WinAppDriver/YWinAppDriver with nodejs/JavaScript webdriver client

This applies to both WinAppDriver and YWinAppDriver. WinAppDriver is supported by Microsoft officially and YWinAppDriver is an open-source WinAppDriver implementation I created. Set implicit timeout Implicit timeout is useful when WinAppDriver is looking for element/elements. It waits until timeout before returning not found. It reduces the interaction between client and…

Tips

3 min read

Tips to integrate WinAppDriver/YWinAppDriver with nodejs/JavaScript webdriver client
Tips to integrate WinAppDriver/YWinAppDriver with nodejs/JavaScript webdriver client
Tips

3 min read


Nov 29, 2020

YWinAppDriver: An open sourced WinAppDriver

WinAppDriver is the UI automation tool recommended by Microsoft, and now there is an open-source implementation: YWinAppDriver. YWinAppDriver is compatible with w3c and selenium json wire protocols, so there is little effort for WinAppDriver user to switch from WinAppdriver to YWinAppDriver. In Windows, the Microsoft UI Automation(UIA) is the user…

Winappdriver

2 min read

Winappdriver

2 min read


Oct 16, 2019

Inspecting UI Elements for WinAppDriver automation using Appium Desktop

Windows Application Driver(WinAppDriver) is the recommended tool to do UI automation for Windows applications. WinAppDriver supports various locators to find UI element, and then drive then to perform actions, below table shows all the supported locators Generally speaking, there are three tools could help you with the locators: Inspect.exe. This…

Appium Desktop

3 min read

Inspecting UI Elements for WinAppDriver automation using Appium Desktop
Inspecting UI Elements for WinAppDriver automation using Appium Desktop
Appium Desktop

3 min read


Oct 6, 2019

azure-devops-extension-task-boilerplate project: Help you to author azure pipeline agent task

Azure pipeline helps you to implement continuous integration and continuous delivery(CI/CD) for your application. When you create a pipeline, Task is the fundamental building block in the pipeline. A task is just a packaged script or procedure helps you to make the job done, for example, VSTest task, VSBuild task. …

JavaScript

2 min read

JavaScript

2 min read


Sep 23, 2019

Choose the right E2E automation framework for React Native Windows

React Native Windows is an open source project created by Microsoft, which enables React Native developers easily target their application on Windows. Compared to iOS and Android implementation of React Native, React Native Windows is pretty new. How to choose a right E2E automation framework and start your automation testing…

React Native

4 min read

React Native

4 min read

Canhua Li

Canhua Li

18 Followers

Senior Software Engineer — Microsoft

Help

Status

Writers

Blog

Careers

Privacy

Terms

About

Text to speech

Teams