2011-12-26 6 views
4

Я создал новый проект какао Xcode 4.2, какао-библиотеку. По умолчанию модульные тесты приходят со следующим испытанием блока:Xcode 4.2, не может запускать модульный тест

- (void)testExample 
{ 
    STFail(@"Unit tests are not implemented yet in learning01Tests"); 
} 

Если я нажимаю ⌘U я могу видеть тестовое здание и неудачу, как и ожидалось. Теперь я добавляю новые следующие строки для того, чтобы проверить внешний класс я создал:

#import "svc01.h" 

- (void)testMyClass 
{ 
    svc01* svc = [[svc01 alloc]init]; 
    int expected = [svc addTwoNumbers:10 :10]; 
    STAssertTrue(21 == expected, @"It should fail!"); 
} 

я могу увидеть оба теста (по умолчанию, и мой метод) неисправного, как ожидалось. Проблема в том, что иногда, даже если я нажимаю на команду Test, появляется всплывающее сообщение «Build success», а затем «Test success», но если я смотрю на выходную консоль, то он говорит «test run 0»

Есть ли ничего плохого я делаю?

UPDATE

Прямо сейчас я изменил подпись из моих методов испытаний и больше не работает. у меня есть это:

#import <SenTestingKit/SenTestingKit.h> 

@interface learning01Tests : SenTestCase 
- (void)sumTwoIntegerShouldPass; 
- (void)sumTwoZeroShouldThrow; 

@end 
- (void)sumTwoIntegerShouldPass 
{ 
    svc01* svc = [[svc01 alloc]init]; 
    int expected = [svc addTwoNumbers:10 :10]; 
    STAssertTrue(20 == expected, @"It should fail!"); 
} 

- (void)sumTwoZeroShouldThrow 
{ 
    svc01* svc = [[svc01 alloc]init]; 
    int expected = [svc addTwoNumbers:0 :0]; 
    STAssertTrue(21 == expected, @"It should fail!"); 
} 

И это выход Xcode:

-bfxnldmmxzsspnbglmrpwsnweqkd/Build/Products/Debug/learning01Tests.octest(Tests)' started at 2011-12-26 14:45:26 +0000 
Test Suite 'learning01Tests' started at 2011-12-26 14:45:26 +0000 
Test Suite 'learning01Tests' finished at 2011-12-26 14:45:26 +0000. 
Executed 0 tests, with 0 failures (0 unexpected) in 0.000 (0.000) seconds 
Test Suite '/Users/raffaeu/Library/Developer/Xcode/DerivedData/learning01-bfxnldmmxzsspnbglmrpwsnweqkd/Build/Products/Debug/learning01Tests.octest(Tests)' finished at 2011-12-26 14:45:26 +0000. 
Executed 0 tests, with 0 failures (0 unexpected) in 0.000 (0.002) seconds 

ответ

1

ли вы проверить сборки Настройка вашей цели?

Это ключ, названный iOS Development Target. Если он выделен жирным шрифтом, вы должны нажать клавишу «Удалить», чтобы он не был выделен полужирным шрифтом.

Если вы хотите изменить свой IOS развития Задача, сделать следующим образом:

  • Сначала откройте настройки проекта/вкладку Info. Затем выберите желаемую цель разработки iOS.
  • Затем откройте настройку целевой сборки. Если ключевая цель разработки iOS выделена жирным шрифтом, нажмите клавишу «Удалить»

Всё. Тест вашего устройства выполняется правильно.

+0

Я сожалею, но это решение не работает, увидеть мое обновление – Raffaeu

8

В Xcode 4.2 вам необходимо пометить свой тестовый метод префиксом test, чтобы заставить их работать. Я нашел решение здесь: http://www.blog.holsee.com/2011/07/tests-driven-groking-of-cocoa-objective-c/

Это будет работать:

- (void)testThatsumTwoZeroShouldThrow 
{ 
    svc01* svc = [[svc01 alloc]init]; 
    int expected = [svc addTwoNumbers:0 :0]; 
    STAssertTrue(21 == expected, @"It should fail!"); 
} 

пока это не будет:

- (void)TestThatsumTwoZeroShouldThrow 
{ 
    svc01* svc = [[svc01 alloc]init]; 
    int expected = [svc addTwoNumbers:0 :0]; 
    STAssertTrue(21 == expected, @"It should fail!"); 
} 
+0

святое дерьмо это работает! искал то же самое :-) – thandasoru

Смежные вопросы