protocol ScanfileProtocol: class { /// Path to the workspace file var workspace: String? { get } /// Path to the project file var project: String? { get } /// The project's scheme. Make sure it's marked as `Shared` var scheme: String? { get } /// The name of the simulator type you want to run tests on (e.g. 'iPhone 6') var device: String? { get } /// Array of devices to run the tests on (e.g. ['iPhone 6', 'iPad Air']) var devices: [String]? { get } /// Should skip auto detecting of devices if none were specified var skipDetectDevices: Bool { get } /// Enabling this option will automatically killall Simulator processes before the run var forceQuitSimulator: Bool { get } /// Enabling this option will automatically erase the simulator before running the application var resetSimulator: Bool { get } /// Enabling this option will launch the first simulator prior to calling any xcodebuild command var prelaunchSimulator: Bool? { get } /// Enabling this option will automatically uninstall the application before running it var reinstallApp: Bool { get } /// The bundle identifier of the app to uninstall (only needed when enabling reinstall_app) var appIdentifier: String? { get } /// Array of strings matching Test Bundle/Test Suite/Test Cases to run var onlyTesting: String? { get } /// Array of strings matching Test Bundle/Test Suite/Test Cases to skip var skipTesting: String? { get } /// Run tests using the provided `.xctestrun` file var xctestrun: String? { get } /// The toolchain that should be used for building the application (e.g. `com.apple.dt.toolchain.Swift_2_3, org.swift.30p620160816a`) var toolchain: String? { get } /// Should the project be cleaned before building it? var clean: Bool { get } /// Should code coverage be generated? (Xcode 7 and up) var codeCoverage: Bool? { get } /// Should the address sanitizer be turned on? var addressSanitizer: Bool? { get } /// Should the thread sanitizer be turned on? var threadSanitizer: Bool? { get } /// Should the HTML report be opened when tests are completed? var openReport: Bool { get } /// The directory in which all reports will be stored var outputDirectory: String { get } /// Define how the output should look like. Valid values are: standard, basic, rspec, or raw (disables xcpretty) var outputStyle: String? { get } /// Comma separated list of the output types (e.g. html, junit, json-compilation-database) var outputTypes: String { get } /// Comma separated list of the output files, corresponding to the types provided by :output_types (order should match). If specifying an output type of json-compilation-database with :use_clang_report_name enabled, that option will take precedence var outputFiles: String? { get } /// The directory where to store the raw log var buildlogPath: String { get } /// If the logs generated by the app (e.g. using NSLog, perror, etc.) in the Simulator should be written to the output_directory var includeSimulatorLogs: Bool { get } /// Suppress the output of xcodebuild to stdout. Output is still saved in buildlog_path var suppressXcodeOutput: Bool? { get } /// A custom xcpretty formatter to use var formatter: String? { get } /// Pass in xcpretty additional command line arguments (e.g. '--test --no-color' or '--tap --no-utf') var xcprettyArgs: String? { get } /// The directory where build products and other derived data will go var derivedDataPath: String? { get } /// Should zip the derived data build products and place in output path? var shouldZipBuildProducts: Bool { get } /// Should an Xcode result bundle be generated in the output directory var resultBundle: Bool { get } /// Generate the json compilation database with clang naming convention (compile_commands.json) var useClangReportName: Bool { get } /// Constrain the number of simulator devices on which to test concurrently. Equivalent to -maximum-concurrent-test-simulator-destinations var maxConcurrentSimulators: Int? { get } /// Do not run test bundles in parallel on the specified destinations. Testing will occur on each destination serially. Equivalent to -disable-concurrent-testing var disableConcurrentTesting: Bool { get } /// Should debug build be skipped before test build? var skipBuild: Bool { get } /// Test without building, requires a derived data path var testWithoutBuilding: Bool? { get } /// Build for testing only, does not run tests var buildForTesting: Bool? { get } /// The SDK that should be used for building the application var sdk: String? { get } /// The configuration to use when building the app. Defaults to 'Release' var configuration: String? { get } /// Pass additional arguments to xcodebuild. Be sure to quote the setting names and values e.g. OTHER_LDFLAGS="-ObjC -lstdc++" var xcargs: String? { get } /// Use an extra XCCONFIG file to build your app var xcconfig: String? { get } /// Create an Incoming WebHook for your Slack group to post results there var slackUrl: String? { get } /// #channel or @username var slackChannel: String? { get } /// The message included with each message posted to slack var slackMessage: String? { get } /// Use webhook's default username and icon settings? (true/false) var slackUseWebhookConfiguredUsernameAndIcon: Bool { get } /// Overrides the webhook's username property if slack_use_webhook_configured_username_and_icon is false var slackUsername: String { get } /// Overrides the webhook's image property if slack_use_webhook_configured_username_and_icon is false var slackIconUrl: String { get } /// Don't publish to slack, even when an URL is given var skipSlack: Bool { get } /// Only post on Slack if the tests fail var slackOnlyOnFailure: Bool { get } /// Use only if you're a pro, use the other options instead var destination: String? { get } /// **DEPRECATED!** Use `--output_files` instead - Sets custom full report file name when generating a single report var customReportFileName: String? { get } /// Allows for override of the default `xcodebuild` command var xcodebuildCommand: String { get } /// Should this step stop the build if the tests fail? Set this to false if you're using trainer var failBuild: Bool { get } } extension ScanfileProtocol { var workspace: String? { return nil } var project: String? { return nil } var scheme: String? { return nil } var device: String? { return nil } var devices: [String]? { return nil } var skipDetectDevices: Bool { return false } var forceQuitSimulator: Bool { return false } var resetSimulator: Bool { return false } var prelaunchSimulator: Bool? { return nil } var reinstallApp: Bool { return false } var appIdentifier: String? { return nil } var onlyTesting: String? { return nil } var skipTesting: String? { return nil } var xctestrun: String? { return nil } var toolchain: String? { return nil } var clean: Bool { return false } var codeCoverage: Bool? { return nil } var addressSanitizer: Bool? { return nil } var threadSanitizer: Bool? { return nil } var openReport: Bool { return false } var outputDirectory: String { return "./test_output" } var outputStyle: String? { return nil } var outputTypes: String { return "html,junit" } var outputFiles: String? { return nil } var buildlogPath: String { return "~/Library/Logs/scan" } var includeSimulatorLogs: Bool { return false } var suppressXcodeOutput: Bool? { return nil } var formatter: String? { return nil } var xcprettyArgs: String? { return nil } var derivedDataPath: String? { return nil } var shouldZipBuildProducts: Bool { return false } var resultBundle: Bool { return false } var useClangReportName: Bool { return false } var maxConcurrentSimulators: Int? { return nil } var disableConcurrentTesting: Bool { return false } var skipBuild: Bool { return false } var testWithoutBuilding: Bool? { return nil } var buildForTesting: Bool? { return nil } var sdk: String? { return nil } var configuration: String? { return nil } var xcargs: String? { return nil } var xcconfig: String? { return nil } var slackUrl: String? { return nil } var slackChannel: String? { return nil } var slackMessage: String? { return nil } var slackUseWebhookConfiguredUsernameAndIcon: Bool { return false } var slackUsername: String { return "fastlane" } var slackIconUrl: String { return "https://s3-eu-west-1.amazonaws.com/fastlane.tools/fastlane.png" } var skipSlack: Bool { return false } var slackOnlyOnFailure: Bool { return false } var destination: String? { return nil } var customReportFileName: String? { return nil } var xcodebuildCommand: String { return "env NSUnbufferedIO=YES xcodebuild" } var failBuild: Bool { return true } } // Please don't remove the lines below // They are used to detect outdated files // FastlaneRunnerAPIVersion [0.9.22]