Как запустить XCTest для быстрого приложения из командной строки?
Я хочу протестировать некоторые примеры Swift с помощью XCTest из командной строки, если это возможно.
import XCTest
class LeapTest : XCTestCase {
func testVanillaLeapYear() {
let year = Year(calendarYear: 1996)
XCTAssertTrue(year.isLeapYear);
}
}
Мне бы хотелось запустить его из командной строки.
Я уже установил Xcode для использования инструментов разработчика в бета-версии:
sudo xcode-select -s /Applications/Xcode6-Beta.app/Contents/Developer/
Если я наивно попытаюсь запустить его, он будет выглядеть следующим образом
$ xcrun swift LeapTest.swift
LeapTest.swift:1:8: error: cannot load underlying module for 'XCTest'
import XCTest
^
Любой способ запустить его непосредственно из CLI? Или мне нужно создать проект Xcode?
Ответы
Ответ 1
Мне удалось собрать компиляцию XCTestCase с помощью следующей команды:
swiftc \
-F/Applications/Xcode6-Beta5.app/Contents/Developer/Platforms/MacOSX.platform/Developer/Library/Frameworks \
-Xlinker -rpath -Xlinker /Applications/Xcode6-Beta5.app/Contents/Developer/Platforms/MacOSX.platform/Developer/Library/Frameworks \
-lswiftCore LeapTest.swift \
-o LeapTests
Затем вы можете выполнить тесты с помощью xctest
:
xcrun xctest LeapTests
И чтобы разбить эти параметры командной строки swiftc
:
-
-F...
добавляет XCTest.framework в пути поиска в каркасе, позволяя им импортировать из Swift
-
-Xlinker -rpath ...
гарантирует, что общедоступную библиотеку XCTest можно найти во время загрузки
- Без явного указания
-lswiftCore
я обнаружил, что xctest
будет сбой при попытке запустить набор тестов
Надеюсь, что это поможет!
Ответ 2
Я думаю, что проблема заключается в том, что у вас есть файл test.swift под основным целевым членством в проекте. Убедитесь, что ваши быстрые тестовые файлы принадлежат только тестовому объекту.