Team Cityã§Windows Phone 7ãããžã§ã¯ãã®ç¶ç¶ççµ±åã·ã¹ãã ãã»ããã¢ããããçµéšãå
±æããããšæããŸãã åãéãè¡ã人ãç§ãè²»ãããæéãç¥çµãæãããšãé¡ã£ãŠããŸãã
äžããããïŒ- Silverlight Toolkitã䜿çšããŠå®è£
ãããåäœãã¹ããåããããªã倧èŠæš¡ãªWindows Phone 7ã¢ããªã±ãŒã·ã§ã³ã
- åäœãã¹ããå®è¡ããã«ãTeamCityã§ã«ã¹ã¿ãã€ãºãããã¢ããªã±ãŒã·ã§ã³ã®ãã«ãã ãã«ããšãŒãžã§ã³ãã¯ãç©ççãªãïŒããæå³ã§ã¯ãä»®æ³ã§ã¯ãªãïŒãã·ã³ã§ãã
å¿
èŠã§ãïŒ- VMWareã®äžã®ä»®æ³ãã·ã³ã«å¥ã®TeamCityãã«ããšãŒãžã§ã³ããã»ããã¢ããããŸãã
- ã¢ã»ã³ããªäžã«ãŠããããã¹ããå®è¡ããå®è¡çµæãTeamCityçµ±èšã«åéããŸãã
ãã«ããšãŒãžã§ã³ãã®ã»ããã¢ãã
Windows Server 2008 R2ãæèŒããä»®æ³ãã·ã³ã¯ããã«ããšãŒãžã§ã³ããšããŠäœ¿çšãããŸãã æåã¯ãã»ããã¢ããã¯ç°¡åã«èŠããŸãã-Visual StudioãWindows Phone SDKãããã³ãšãŒãžã§ã³ãèªäœãã€ã³ã¹ããŒã«ããŸãïŒãšãŒãžã§ã³ãã¯ãããã€ãããTeamCityã®ãµã€ãããçŽæ¥ããŠã³ããŒããããŸãïŒã Silverlightãªãã®ãã¹ããããžã§ã¯ãã¯åé¡ãªããéå§ããããŸããããŠããããã¹ãã¯ããã«æ··ä¹±ããçµã¿èŸŒã¿ã®TeamCity dotCoverã䜿çšããŠã³ãŒãã«ãã¬ããžãå¶åŸ¡ã§ããããã«ãªããŸããã

ãŒããã5åã§ãã®ãããªçµæãåŸãããšãã§ããŠè¯ãã£ãã§ãïŒ
ãšãã¥ã¬ãŒã¿ãŒã®èµ·å
ç«ãã€ããã®ã§ãWindows Phoneã®ã¢ã»ã³ããªã®ç«ã¡äžããå§ããŸããã ãããã楜ãã¿ãå§ãŸããŸããã
TeamCityã§ã¯ãã¢ã»ã³ããªãæ¢ã«æ§æãããŠãããããããŒã¿ãæºåããããã«ç¹å®ã®ã³ãŒããå®è¡ããå¿
èŠããã£ããšèšããªããã°ãªããŸããã ãã®ã³ãŒãã¯ãã©ã€ããã¢ããªã±ãŒã·ã§ã³ã§äœ¿çšãããŠãããSilverlightã©ã³ã¿ã€ã ããåãé¢ãã®ãé¢åã§ããã ãããã£ãŠãã¢ã»ã³ããªäžã«ãTeamCityãšãŒãžã§ã³ãã«ãã£ãŠåŒã³åºããããšãã¥ã¬ãŒã¿ãŒã§ã³ãŒããå®è¡ãããŸããã ãã®ãããªã¹ããŒã ã¯ãæ¢åã®ãã«ããšãŒãžã§ã³ãã§æ©èœããŸããã
ãã ããæ°ãããã«ããšãŒãžã§ã³ãã§åæ§ã®ã¢ã»ã³ããªãã»ããã¢ããããããšã¯ãæ°æ¥åŸã«äž»ã«æªçšã§ãã£ã±ãã«ãªããŸããã ç§ãæãŸããäž»ãªã·ã§ãŒã«ã¯æ¬¡ã®ãšããã§ãã
- Windows Phone SDKãã€ã³ã¹ããŒã«ãããŠããŸãã-ãµãŒããŒOSãèªèããã«Windows 7ãå¿
èŠã ãšäžæºãèšããŸããã GoogleãšMSDNãæ¯æŽããŸããã SDKãå®å
šã«ããŠã³ããŒãããã®ã§ãæ瀺ã«åŸã£ãŠbaseline.datãç·šéããåŸãããŒãªãã§setup.exeãå®è¡ãããã¹ãŠãæ£åžžã«ã€ã³ã¹ããŒã«ãããŸããã
- Windows Media Playerãã€ã³ã¹ããŒã«ãããŠããªãããããšãã¥ã¬ãŒã¿ã¯èµ·åããŸããã§ããã Windows Server 2008ã«ã€ã³ã¹ããŒã«ããããšãéåžžã«çŽæçã§ã¯ãããŸããã§ããã
- 圌ã㯠ããšãã¥ã¬ãŒã¿ãŒãç¹å®ã®ãã©ã°ãšæåïŒïŒïŒä»®æ³ãã·ã³ã®æ§æãç·šéããªããšèµ·åããªããããããªããšèšããŸãããããã¯ç§ããã¹ããŸããã Windows Phone 7ãšãã¥ã¬ãŒã¿ãŒãå¿
èŠã§ãã¿ã³ããªã³ãšã®ãã³ã¹ãWindows Phone 8ãšãã¥ã¬ãŒã¿ãŒã«ã€ããŠèª¬æãããŠãããããã管çè
ã¯ä»®æ³ãã·ã³ã®èšå®ãããã¹ãŠãå«ããããšãä¿èšŒããã®ã§ãããã
- ãšãã¥ã¬ãŒã¿ã¯ãä»®æ³ãã·ã³ã®RAMããªã¥ãŒã ã1 GBãã2 GBã«å¢å ãããŸã§èµ·åããŸããã§ããã ããã¯éãã«éå§ããŸããã§ãã-çç±ã®ãã³ãã§ã¯ãããŸããïŒ
ãšããã§ãSDKã®ã€ã³ã¹ããŒã«æã«äœæãããã·ã§ãŒãã«ããã䜿çšãããšããšãã¥ã¬ãŒã¿ãèµ·åããŸããã 管çãŠãŒãã£ãªãã£ããåŒã³åºããšãæ£åžžã«èµ·åãããããçç±ã¯ããããŸããã§ããã
ãšãã¥ã¬ãŒã¿ãæçµçã«èµ·åãããšãã«ãæåŸã«æ倧ã®åé¡ãè¡šé¢åããŸããã èµ·åæã®ãšãã¥ã¬ãŒã¿ã¯ãéåžžã®æäœã«
ã¯éåžžã®ãããªã«ãŒã
ãå¿
èŠã§ãããšèŠåããŸããããä»®æ³ãã·ã³ã«ã転éãããã«ã¯æ©èœããŸããã§ããã ãã®ãããªæãã¹ãèŠåã®åŸããšãã¥ã¬ãŒã¿ãŒã¯æ£åžžã«åäœãããšããäºå®ã«ããããããã誰ããOKãã¿ã³ãæŒãå¿
èŠããããŸããã ãšãã¥ã¬ãŒã¿ã¯TeamCityãšãŒãžã§ã³ããµãŒãã¹ã«ãã£ãŠèµ·åãããç»é¢ã«è¡šç€ºãããªããšæ³å®ãããŠããããããã¿ã³ãæŒã人ã¯ããŸããã§ããã
å¿
æ»ã®è©Šã¿ã§ãç§ã¯ãã®äžéãªãã¿ã³ã
æŒãããã«ã³ãŒãã£ã³ã°ããããšããŸãããããšãŒãžã§ã³ããµãŒãã¹ãããšãã¥ã¬ãŒã¿ãŒãèµ·åãããšãã«ããã¯æ©èœããŸããã§ããã
ç§ãæãã€ããå¯äžã®ããšã¯ããã«ããšãŒãžã§ã³ãããµãŒãã¹ãšããŠã§ã¯ãªããã¢ããªã±ãŒã·ã§ã³ãšããŠèµ·åããããšã§ããã ãã®å Žåããšãã¥ã¬ãŒã¿ãŒã¯æ£åžžã«èµ·åãããã¿ã³ãæåã§æŒãããšãã§ããŸãïŒãµãŒããŒã®åèµ·ååŸã«ã®ã¿ãããè¡ãã ãã§ååã§ã-èµ·åãããšããšãã¥ã¬ãŒã¿ãŒã¯åŸç¶ã®ãã¹ãŠã®ã¢ã»ã³ããªã«äœ¿çšãããŸãïŒã ããã§ãããã¿ã³ãèªåçã«ã¯ãªãã¯ããããã®ã³ãŒããæ®ããä»®æ³ãã·ã³ã®åèµ·åããç¡äººãã«ãªãããã«ããŸããã
ãšãŒãžã§ã³ããã¢ããªã±ãŒã·ã§ã³ãšããŠå®è¡ããããšã¯ç°¡åã§ããããšãå€æããŸãã-ãšãŒãžã§ã³ãã®binãã£ã¬ã¯ããªïŒããã©ã«ãã§ã¯cïŒ\ BuildAgent \ binïŒã«ã¯ãäžèŠãªãšãŒãžã§ã³ããµãŒãã¹ãç Žæ£ããã¢ããªã±ãŒã·ã§ã³ãšããŠãšãŒãžã§ã³ããå®è¡ã§ããbatãã¡ã€ã«ã®è¯ãã»ããããããŸãïŒãããã¯ããããŸãïŒ
ãã®ãããç®çã®batãã¡ã€ã«ãautorunã«æžã蟌ã¿ã
ã·ã¹ãã ã®èµ·ååŸã«èªåãã°ã€ã³ãæ§æãïŒãã¡ã³ããã³ã¹ããªãŒããªããŒãçšïŒãåºæ¥äžããã§ãã ãã«ãã§ããŸãïŒ
æåŸã®ä»äžãã¯ããšãã¥ã¬ãŒã¿ãŒãèµ·åãããšãŒãžã§ã³ãèµ·åã¹ã¯ãªããã§ã¯ãŒã¯ã¹ããŒã·ã§ã³ããããã¯ããããšã§ããã ãšãã¥ã¬ãŒã¿ã¯ãä»®æ³ãã·ã³ã®åèµ·ååŸã«å®è¡ãããæåã®ã¢ã»ã³ããªã®é
延ãããã³ç®¡çè
ã®èŠæ±ã«ããããã¯ãé€å€ããããã«èµ·åããå¿
èŠããããŸããïŒããã·ã³ã®ã³ã³ãœãŒã«ãéããŠãããšæå³ããããŸããïŒãïŒã
次ã®ã¹ãããã¯ããã«ãã¹ã¯ãªããã«åäœãã¹ããè¿œå ããããšã§ããã åè¿°ã®ãšããããã¹ãã¯ãSilverlight Toolkitã«ãã³ãã«ãããŠããåäœãã¹ããã¬ãŒã ã¯ãŒã¯ã®äžã§å®è¡ãããŸããã ãšãã¥ã¬ãŒã¿ã§ã®å®è¡ã¯ãã§ã«å®äºããã¹ãããã§ããããããã¹ãã¯åé¡ãªãéå§ãããŸããã

ãã¹ãçµæãTeamCityã«è»¢éãã
ããã«ããã¹ãã¯åã«å®è¡ãããã ãã§ãªããã¢ã»ã³ããªã倱æããå Žåã«ã¢ã»ã³ããªããã¯ã©ãã·ã¥ããããããšã¯è«ççã§ããã ãããè¡ãã«ã¯ããã¹ãã®çµæãTeamCityã«è»¢éããå¿
èŠããããŸããã
ãã1ã€ã®åŸé-ãšãã¥ã¬ãŒã¿ãŒãã¢ã»ã³ããªã¹ã¯ãªããããCoreCon APIãä»ããŠå¶åŸ¡ã
ãŸãã ã
ããã«ã€ããŠã¯ Justin Angelãš
arty87ã«æè¬ããŸãã ã€ãŸãããã«ãã¹ã¯ãªããã§ãå®éã«ãšãã¥ã¬ãŒã¿ãå¶åŸ¡ããã³ã³ãœãŒã«ã¢ããªã±ãŒã·ã§ã³ãèµ·åãããŸããã
æãã€ããŠããã«ãã¹ããããæåã®è§£æ±ºçã¯ããã©ãŒã«ã³ãã¹ãã§ã¢ã»ã³ããªããããã¯ããŠã³ããããŒã以å€ã®çµäºã³ãŒãã§ãšãã¥ã¬ãŒã¿ãŒå¶åŸ¡ã¢ããªã±ãŒã·ã§ã³ãçµäºããããšã§ããã åæã«ãã³ã³ãœãŒã«ã«äœããæžãããšãã§ããŸã-TeamCityã®ãã«ããã°ã§ç¢ºèªã§ããŸãã
ããããTeamCityããã¹ãã®çµ±èšãä¿æããŠããããšã®çŸãããæã¿ãŸããããŸããã¢ã»ã³ããªäžã§ãã£ãŠããããããã©ã®ããã«å®è¡ãããŠãããã¯æ確ã§ããïŒãšããã§ãéåžžã«çæ³çïŒ ãã®ããã
Service Message APIãçºæãããŸããããå®éã«ã¯ã³ã³ãœãŒã«åºåããã®ç¹æ®ãªã¿ã€ãã®ã¿ã°ã®ããã£ãããã§ããããšãå€æããŸããã ããã«ç»å Žãã2ã€ã®æ©èœïŒ
- ã¿ã°ã¯åäžè¡ã§ãªããã°ãªããŸããã TeamCityã¯ãæ¹è¡ãã¿ã°ã®çµãããšè§£éãããããã¿ã°ã®åœ¢åŒã¯ééã£ãŠããŠç¡èŠãããŸãã äŸã®ããã¥ã¡ã³ãã§ã¯ãã·ãŒã±ã³ã¹ "| n | r"ã«ããæ¹è¡æåã®è»¢éã瀺ãããŠããŸãããããã¯ããŸããããŸããã§ããã
- ã¿ã°ã¯é·ãããŠã¯ãããŸããã ã¹ã¿ãã¯ãã¬ãŒã¹ããæ¹è¡ãåãåãããããtestFailedã¿ã°ã®è©³çŽ°ãšããŠæž¡ããšãTeamCityã¯ãã¹ãŠã®çµæã䌎ãçŽ300æåã®çµæã®é·ãæååãä»»æã«åå²ããŸããã èå³æ·±ãããšã«ã300æåããæããã«é·ãè¡ã®æ®ãã®éšåã¯ãåå²ãªãã§ãã«ããã°ã«è¡šç€ºãããŸããã ç§ã¯è©³çŽ°ã«å®éšããªãã£ãã®ã§ããã«ããã°ã«ãšã©ãŒãšã©ãŒã衚瀺ããããšã«ããŸãã
ãã¹ãã®éå§ãšå®äºã®äºå®ããã£ãããããšãã¥ã¬ãŒã¿ã§å®è¡ãããã³ãŒããããšãã¥ã¬ãŒã¿å¶åŸ¡ãŠãŒãã£ãªãã£ã«ãã¹ãŠã転éããããã«ã2ã€ã®åé¡ã解決ããŸãïŒçµå±ããŠãŒãã£ãªãã£ã¯ãã¹ããå®è¡ããããšãã¥ã¬ãŒã¿ã§ã¯ãªãã³ã³ãœãŒã«ã«æžã蟌ãå¿
èŠããããŸãïŒã
æåã®ã¿ã¹ã¯ã¯ç°¡åã«è§£æ±ºãããŸããã ãŠããããã¹ãã®ãã¬ãŒã ã¯ãŒã¯ã§ã¯ããã¹ãããã¹ãã¯ã©ã¹ãããã³ã¢ã»ã³ããªå
šäœã®èµ·åããã³å®äºã®ã€ãã³ãã«ãµãã¹ã¯ã©ã€ãããããšãã§ãããã®ãã³ãã©ãŒã§å€ãã®æ
å ±ïŒãã¹ãçµæããã¹ãã倱æãããšãã®äŸå€ãéå§ããã³çµäºæå»ãªã©ïŒãèŠã€ããããšãã§ããŸãã ãã¬ãŒã ã¯ãŒã¯ã«é¢ããããã¥ã¡ã³ããå®éã«æ¢ããŠããŸããã§ããããpokeã¡ãœãããã䜿çšãããšãåŠç¿ãç°¡åã«ãªããŸããã
ãã®ãããçµæã®åºåã䜿çšããŠåäœãã¹ããå®è¡ããã«ã¯ãæšæºã®éå§ã³ãŒãããããã«å€æŽããŸãã
private void MainPage_Loaded(object sender, RoutedEventArgs e) { var testPage = UnitTestSystem.CreateTestPage(GetSettings()) as IMobileTestPage; BackKeyPress += (x, xe) => xe.Cancel = testPage.NavigateBack(); (Application.Current.RootVisual as PhoneApplicationFrame).Content = testPage; }
å€æŽã¯ãGetSettingsé¢æ°ã®åŒã³åºãã«ãããŸãã ããããŸãã«ãã®æ©èœã§ãã
public static UnitTestSettings GetSettings() { var settings = UnitTestSystem.CreateDefaultSettings(); settings.TestHarness.TestClassStarting += TestHarnessTestClassStarting; settings.TestHarness.TestClassCompleted += TestHarnessTestClassCompleted; settings.TestHarness.TestMethodStarting += TestHarnessTestMethodStarting; settings.TestHarness.TestMethodCompleted += TestHarnessTestMethodCompleted; return settings; }
çŸåšããã¹ãã綿å¯ã«ç£èŠããŠããŸãã ã€ãã³ããã³ãã©ãŒã®ã³ãŒãã¯ç°¡åãªã®ã§ãåŒçšããŸããã
ããã§ã远跡çµæããšãã¥ã¬ãŒã¿å¶åŸ¡ããã°ã©ã ã«è»¢éããå¿
èŠããããŸãããšãã¥ã¬ãŒã¿å¶åŸ¡ããã°ã©ã ã§ã¯ãçµæããµãŒãã¹ã¡ãã»ãŒãžAPIã¿ã°ã®åœ¢åŒã§ã³ã³ãœãŒã«ã«åºåã§ããŸãã
èšäºã§å®éã«èª¬æãããŠããããã«ãåé¢ã¹ãã¬ãŒãžãäŒéãã£ãã«ãšããŠäœ¿çšãããŸããã 確ãã«ãææ¡ãããFileDeployerãšã¯ç°ãªããRemoteIsolatedStorageã¯ã©ã¹ã¯ãã¡ã€ã«ã®äº€æã«äœ¿çšãããŸããã
ãããããã®éä¿¡æ¹æ³ã¯ããŸãè¯ããããŸããã§ããã ãã¹ãã«é¢ããæ
å ±ããªã¢ã«ã¿ã€ã ã§éä¿¡ãããã£ãããããã¹ãçµæã¯ããã«ãšãã¥ã¬ãŒã¿äžã®åé¢ã¹ãã¬ãŒãžãã¡ã€ã«ã«æžã蟌ãŸãã管çãŠãŒãã£ãªãã£ã¯ãã®ãã¡ã€ã«ãå®æçã«èªã¿åããæ°ããååŸããçµæãã³ã³ãœãŒã«ã«è¡šç€ºããŸããã ãã¡ã€ã«ãããã¯ãããŠãããããã¬ã³ãŒãã¯å®æçã«ãèœã¡ãŸããããå®è¡ããããã¹ãã«ã¯åœ±é¿ããŸããã§ãããããããã«é¢ããæ
å ±ã倱ãããŸããã 圌ãã¯ãæŸèæãã§åé¡ã解決ããŸãã-æžã蟌ã¿ãšã©ãŒããã£ãããããšã©ãŒã§åè©Šè¡ããŸããã ãã¡ããã颚氎ã§ã¯ãããšãã°IPãä»ããŠãããé©åãªæ¹æ³ã§ãšãã¥ã¬ãŒã¿ãšããŒã¿ã亀æããå¿
èŠããããŸãã ããããåŸ
ã¡æãŸããŠããçµæããã§ã«åŸãããŠããã®ã§ãç§ã¯ãããæ°ã«ããããããŸããã§ããïŒ

åäœãã¹ãã§ã³ãŒãã«ãã¬ããžãå¶åŸ¡ããããšãã欲æ±ã¯æºããããŠããªããŸãŸã§ããã å€æããããã«ãSIlverlight Runtimeã§ã¯ã³ãŒãã«ãã¬ããžãæ£åžžã«å¶åŸ¡ããããšã¯ã§ããŸããã ããå€ãã®äººã¯ãã«ãã¬ããžãååŸããããã«ãéåžžã®.NET CLRã§ãã¹ãã³ãŒããåã³ã³ãã€ã«ããããšãã
å§ãããŸãã ãã ããSilverlightã©ã³ã¿ã€ã ã«éåžžã«å³å¯ã«çµã³ä»ããããå Žåãããå©çšå¯èœãªãã¹ãã®ããªã¥ãŒã ã§ã¯ããããå®è¡ããããšã¯å®çšçã§ã¯ãªããšèŠãªãããŸããã ããã«ããããããã倢ã¯æ®ã£ãŠããŸããããããŠç§ã¯å§ãŸã£ãå°ããªãããžã§ã¯ãã§ãããå®çŸããããšããŸãã ãã¹ãŠãããŸããããåã³ãåãã¡åããããšãé¡ã£ãŠããŸãã
PSããã¯ç§ã®æåã®æçš¿ã§ãã®ã§ã建èšçãªæ¹å€ãšææ¡ã®æºåãã§ããŠããŸãã