ios xcode 11ユニットテスト実践
最近iOSの変異テストをしていますが、一部はカバー率に基づいて単測用例を正確に推薦する必要があります.その中でiosの単測を設計しました.今日はiOSの単測についてお話しします.
1、xcodebuildコマンドの表示
を運転する. をスキップする.
3、xcodebuildのコンパイルと実行
1、xcodebuildコマンドの表示 man xcodebuild
xcodebuildでサポートされているオプションを表示できます.
2、xcodebuild完全なユニットテストコマンド xcodebuild test -workspace 'xxx.xcworkspace' -scheme xxx -destination 'platform=iOS simulator,id=82D4328F-F862-4BC5-A3B2-41F044E444AB' -enableCodeCoverage YES -default-test-execution-time-allowance 0.5 -test-timeouts-enabled YES -maximum-test-execution-time-allowance 0.5 -resultBundlePath 'xxx.xcresult' -only-testing xxx/yyy/zzz
xcodebuild test -workspace 'xxx.xcworkspace' -scheme xxx -destination 'platform=iOS simulator,id=82D4328F-F862-4BC5-A3B2-41F044E444AB' -enableCodeCoverage YES -default-test-execution-time-allowance 0.5 -test-timeouts-enabled YES -maximum-test-execution-time-allowance 0.5 -resultBundlePath 'xxx.xcresult' -only-testing xxx/yyy/zzz
-workspace
工事名-destination
ユニットテストの実行機-only-testing
ある単測用例-skip-testing
ある単一測定例-only-testing
および-skip-testing
入力フォーマットは、TestTarget[/TestClass[/TestMethod]]
であり、-destination
は、コマンドinstruments -s devices
によって取得され、エンジニアリングに適合するデバイスを選択することができる(エンジニアリングはオペレーティングシステムの最低要件を設定する可能性があるため)3、xcodebuildのコンパイルと実行
コンパイルのみ実行しないxcodebuild build-for-testing xxx
実行のみ非コンパイルxcodebuild test-without-building
コンパイル+実行xcodebuild test
4、オーバーライド率の表示
4.1レポートをjson形式で表示
xcrun xccov view --report --json Demo.xcresult
4.2レポートをデフォルトで表示
xcrun xccov view --report Demo.xcresult
4.3上書きされたファイルの表示
xcrun xccov view --archive --file-list Demo.xcresult
4.4ファイル上書きの行番号の表示
xcrun xccov view --archive --file 'xxx' Demo.xcresult
5、並列実行ユニットテスト
パラレルテストは、複数のターゲットで同時にテストできます.次の方法で、異なるテストターゲット上で並列にテストできます.xcodebuild test
-destination 'platform=iOS,name=iPhone X'
-destination 'platform=iOS,name=iPad'
パラレルテストでは、シミュレータを事前に起動したほうがいいです.シミュレータを起動するコマンドは次のとおりです.xcrun instruments -w
6、Xcodebuild実行ユニットテストタイムアウト
xcode11.4実行ユニットテストのタイムアウトパラメータを追加し、-test-timeouts-enabledオプションを有効にした後、単一のテストのデフォルト実行時間を構成します.-default-test-execution-time-allowanceオプションを渡してください.テストの実行時間に絶対上限を追加するには、executeTimeAllowance APIを介してより多くの時間を要求する場合は、-maximum-test-execution-time-allowanceオプションを渡します.しかし実際の実践では-maximum-test-execution-time-allowanceパラメータは有効ではなく、タイムアウト時間は永遠に1分であることが分かった.
参考記事
1、https://developer.apple.com/library/archive/technotes/tn2339/_index.html#//apple_ref/doc/uid/DTS40014588-CH1-PRODUCT 2、https://www.thinbug.com/q/20237064 3、https://www.hualong.me/2018/03/14/Xcodebuild/4、https://www.jianshu.com/p/f88d5efbc98f 5、https://medium.com/xcblog/xccov-xcode-code-coverage-report-for-humans-466a4865aa18 6、https://xiaozhuanlan.com/topic/3790216845 7、https://www.jianshu.com/p/4413d6879457 8、https://ohmyrss.com/post/1585243964646
xcodebuild build-for-testing xxx
xcodebuild test-without-building
xcodebuild test
4.1レポートをjson形式で表示
xcrun xccov view --report --json Demo.xcresult
4.2レポートをデフォルトで表示
xcrun xccov view --report Demo.xcresult
4.3上書きされたファイルの表示
xcrun xccov view --archive --file-list Demo.xcresult
4.4ファイル上書きの行番号の表示
xcrun xccov view --archive --file 'xxx' Demo.xcresult
5、並列実行ユニットテスト
パラレルテストは、複数のターゲットで同時にテストできます.次の方法で、異なるテストターゲット上で並列にテストできます.xcodebuild test
-destination 'platform=iOS,name=iPhone X'
-destination 'platform=iOS,name=iPad'
パラレルテストでは、シミュレータを事前に起動したほうがいいです.シミュレータを起動するコマンドは次のとおりです.xcrun instruments -w
6、Xcodebuild実行ユニットテストタイムアウト
xcode11.4実行ユニットテストのタイムアウトパラメータを追加し、-test-timeouts-enabledオプションを有効にした後、単一のテストのデフォルト実行時間を構成します.-default-test-execution-time-allowanceオプションを渡してください.テストの実行時間に絶対上限を追加するには、executeTimeAllowance APIを介してより多くの時間を要求する場合は、-maximum-test-execution-time-allowanceオプションを渡します.しかし実際の実践では-maximum-test-execution-time-allowanceパラメータは有効ではなく、タイムアウト時間は永遠に1分であることが分かった.
参考記事
1、https://developer.apple.com/library/archive/technotes/tn2339/_index.html#//apple_ref/doc/uid/DTS40014588-CH1-PRODUCT 2、https://www.thinbug.com/q/20237064 3、https://www.hualong.me/2018/03/14/Xcodebuild/4、https://www.jianshu.com/p/f88d5efbc98f 5、https://medium.com/xcblog/xccov-xcode-code-coverage-report-for-humans-466a4865aa18 6、https://xiaozhuanlan.com/topic/3790216845 7、https://www.jianshu.com/p/4413d6879457 8、https://ohmyrss.com/post/1585243964646
xcodebuild test
-destination 'platform=iOS,name=iPhone X'
-destination 'platform=iOS,name=iPad'
xcrun instruments -w
xcode11.4実行ユニットテストのタイムアウトパラメータを追加し、-test-timeouts-enabledオプションを有効にした後、単一のテストのデフォルト実行時間を構成します.-default-test-execution-time-allowanceオプションを渡してください.テストの実行時間に絶対上限を追加するには、executeTimeAllowance APIを介してより多くの時間を要求する場合は、-maximum-test-execution-time-allowanceオプションを渡します.しかし実際の実践では-maximum-test-execution-time-allowanceパラメータは有効ではなく、タイムアウト時間は永遠に1分であることが分かった.