Как запустить 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?
2 ответов
я смог получить компиляцию 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.фреймворк в пути поиска фреймворка, что позволяет импортировать его из Swift -
-Xlinker -rpath ...
гарантирует, что общая библиотека XCTest может быть найдена во время загрузки - без явного указание
-lswiftCore
, я обнаружил, чтоxctest
произойдет сбой при попытке запустить набор тестов
надеюсь, что это поможет!
Я думаю, проблема в том, что у вас есть тест.файл swift под целевым членством основного проекта. Убедитесь, что тестовые файлы swift принадлежат только тестовой цели.