pxctest
Execute tests in parallel on multiple iOS Simulators.

Installation
To install via Homebrew you can use theplu/homebrew-pxctest tap:
brew tap plu/pxctest
brew install pxctest
Usage
Compile your tests with build-for-testing , example:
xcodebuild /
-IDEBuildLocationStyle=Custom /
-IDECustomBuildLocationType=Absolute /
-IDECustomBuildProductsPath="$PWD/build/Products" /
-scheme 'MyApp' /
-workspace 'MyApp.xcworkspace' /
-destination 'platform=iOS Simulator,name=iPhone 5,OS=10.1' /
build-for-testing
In build/Products you should find a .xctestrun file. This can then be passed to pxctest :
pxctest /
run-tests /
--destination 'name=iPhone 5,os=iOS 9.3' /
--destination 'name=iPhone 5,os=iOS 10.1' /
--testrun build/Products/MyApp_iphonesimulator10.1-i386.xctestrun
The --destination option can be passed in several times and will execute the tests in parallel on all Simulators.
run-tests options
To see a list of possible options, just run:
pxctest run-tests --help
Most of the options should be self-explanatory. If not, please open an issue or submit some pull request. However the --defaults option needs a special section here.
run-tests --defaults
This option expects a path to a file, which contains some JSON. After loading this file, its content gets applied to the Simulator's defaults. On the top level the keys must be either a relative path or a domain where the defaults are located.
Example: You can turn off all keyboard settings that you can find in the Simulator's Settings app by using following JSON content:
{
"com.apple.Preferences": {
"KeyboardAllowPaddle": false,
"KeyboardAssistant": false,
"KeyboardAutocapitalization": false,
"KeyboardAutocorrection": false,
"KeyboardCapsLock": false,
"KeyboardCheckSpelling": false,
"KeyboardPeriodShortcut": false,
"KeyboardPrediction": false,
"KeyboardShowPredictionBar": false
}
}
Development
git clone --recursive https://github.com/plu/pxctest.git pxctest
cd pxctest
scripts/bootstrap.sh
NSUnbufferedIO=YES xcodebuild -scheme pxctest test | xcpretty -c
FBSimulatorControl
The functionality of pxctest would not be possible without the great FBSimulatorControl Framework provided byLawrence Lomax atFacebook.
There are two command line tools that come withFBSimulatorControl:
- fbsimctl - command line interface to the FBSimulatorControl Framework
- fbxctest - test runner for running iOS testing bundles for the iOS Simulator Platform
Both of them are more flexible than pxctest , so it might be worth having a look at them.
本文链接:https://www.it72.com/11495.htm