開發(fā)支持庫vsts使用指南_第1頁
開發(fā)支持庫vsts使用指南_第2頁
開發(fā)支持庫vsts使用指南_第3頁
開發(fā)支持庫vsts使用指南_第4頁
開發(fā)支持庫vsts使用指南_第5頁
已閱讀5頁,還剩36頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

1、用 VSTS 進(jìn)行構(gòu)建下面將通過一個(gè)例子來講解 VSTS 是如何進(jìn)行構(gòu)建的!1、創(chuàng)建團(tuán)隊(duì)生成類型在VSTS2005 團(tuán)隊(duì)資源管理器-團(tuán)隊(duì)項(xiàng)目生成下生成一個(gè)新的團(tuán)隊(duì)類型,具體生成過程如下:第一步:生成類型命名第二步:略第三步:略第四步;略第五步:設(shè)置構(gòu)建過的測(cè)試項(xiàng)第六步:略。當(dāng)進(jìn)行完以上六步后,一個(gè)新的團(tuán)隊(duì)類型將生成。2、 進(jìn)行構(gòu)建設(shè)置當(dāng)一個(gè)團(tuán)隊(duì)類型生成,此時(shí)需要按自己的設(shè)置(一天,一周,一個(gè)月)進(jìn)行團(tuán)隊(duì)項(xiàng)目的生成(此處是利用WINDOWS 系統(tǒng)的自動(dòng)執(zhí)行功能來執(zhí)行用戶自定義的任務(wù))在目標(biāo)機(jī)上“C:Program FilesVisual Studio 8Common7IDE”文件夾下新建一個(gè)批處

2、理文件,批處理內(nèi)容為:“C:Program FilesVisualStudio 8Common7IDE TFSBuild.exe”start 計(jì)算機(jī)名 “項(xiàng)目名稱” “團(tuán)隊(duì)類型名稱”給系統(tǒng)新建一個(gè)任務(wù),然后配置其“日程安排”項(xiàng)。(下圖配置了任務(wù)執(zhí)行時(shí)間是:每天的 10:20 系統(tǒng)自動(dòng)開始執(zhí)行任務(wù),也可以設(shè)置為每擱幾分鐘或幾小時(shí)執(zhí)行一次任務(wù),詳細(xì)設(shè)置在“高級(jí)”中。)3、 當(dāng)構(gòu)建完成后,查看構(gòu)建信息。1) 構(gòu)建版本定位到團(tuán)隊(duì)生成類型第四步中的物理位置,可以看到構(gòu)建成功的可執(zhí)行應(yīng)用程序如下,其中通過目錄可以看到此版本號(hào):AddBuild_20071105.12)查看構(gòu)建日志(部分日志截圖如下,通過日

3、志可以分析在構(gòu)建的過問題)結(jié)論:通過構(gòu)建,可以方便測(cè)試及早拿到一個(gè)可測(cè)試的版本,這樣方便了測(cè)試進(jìn)試工作,對(duì)發(fā)現(xiàn)也可以及早的提交到程序員手中,進(jìn)行及時(shí)的更改,促進(jìn)了項(xiàng)目的推進(jìn)。比較二個(gè)數(shù)據(jù)庫的架構(gòu)一、打開 VS2008,點(diǎn)擊菜單上的 Data=Schema Compare=NewSchema Comparison二、在彈出窗體中,按下圖分別在 Sourchema 下和Schema 下選擇相應(yīng)的 Database,其中 Sourchema 下選擇的數(shù)據(jù)庫【ISACADB-S】是待比較的數(shù)據(jù)源,是Schema 下選擇的數(shù)據(jù)庫【ISACADB】被更新的依據(jù)。三、選擇好數(shù)據(jù)庫后,點(diǎn)擊 OK 按鈕,開始執(zhí)

4、行架構(gòu)比較,完成后,顯示如下界面。選擇圖中上面的數(shù)據(jù)庫表或過程,下面的窗口二側(cè)會(huì)分別以不同顏色顯示Source 和Database 中不相同部分的內(nèi)容。四、點(diǎn)擊 VS2008 中如下圖的中的紫色方框內(nèi)的按鈕【Show SchemaUpdate Script】,會(huì)在 vs2008 的下方顯示整個(gè)數(shù)據(jù)庫的全部更新;點(diǎn)擊其右側(cè)的刷新【Refresh】按鈕,則會(huì)重新進(jìn)行比較;點(diǎn)擊 Write Updates 按鈕,會(huì)直接執(zhí)行更新,使Database 的架構(gòu)與 Source Database 一致,點(diǎn)擊Write Updates 左側(cè)的按鈕,可以重新設(shè)置 Compare 的二個(gè) Database;最左側(cè)

5、的按鈕可以設(shè)置顯示那些比較的結(jié)果。五、導(dǎo)出,可以直接上衣步驟中的,也可以點(diǎn)擊 VS2008 中如下圖的的二個(gè)按鈕,Export To Editor 是將導(dǎo)出到 VS2008 中的編輯器中,Export To File 則是將導(dǎo)出到文件中。六、執(zhí)行上一步導(dǎo)出的,將Database 的架構(gòu)更新到與 SourceDatabase 的架構(gòu)一致。七、在Database 執(zhí)行更新成功后,檢查Database 的架構(gòu)更新是否正確。方法是:將更新后的Database 與 Source Database 進(jìn)行架構(gòu)比較,看比較結(jié)果是否完全一致,如果不一致,則檢查錯(cuò)誤原因;或者恢復(fù)原來的Database【已備份】,

6、重新進(jìn)行更新,直到更新正確。比較二個(gè)數(shù)據(jù)庫的數(shù)據(jù)一、打開 VS2008,點(diǎn)擊菜單上的 Data= Dompare=New DataComparison二、在彈出窗體中,按下圖分別在Source Database 下和Database 下選擇相應(yīng)的Database,其中 Source Database 下選擇的數(shù)據(jù)庫【ISACADB-S】是待比較的數(shù)據(jù)源,是Database 下選擇的數(shù)據(jù)庫【ISACADB】被更新的依據(jù)。并在下面設(shè)置比較條件,點(diǎn)擊Next 按鈕則可以進(jìn)一步設(shè)置要比較的Tables、StoredProcedures、Views 等,點(diǎn)擊 Finish 則直接按默認(rèn)【只比較Table

7、s】進(jìn)行數(shù)據(jù)比較。三、點(diǎn)擊 Finish 按鈕后,開始執(zhí)行數(shù)據(jù)比較,完成后,顯示如下界面。四、下面的所有步驟和上面的架構(gòu)比較時(shí)基本一樣,此處省略。補(bǔ)充:Visual Studio 2005 Team System 版本中默認(rèn)是沒有上面的功能的,需要安裝下面的插件才能使用以上功能。Visual Studio 2005 Team Edition for Database Profesals Add-on forVisual Studio 2005 Team Suite Edition地址:http:/downloads/details.aspx?familyid=7de00386-893d-414

8、2-a778-992b69d482ad&displaylang=en用 VSTS 寫單元測(cè)試的開發(fā)VSTS(Visual Studio Team System) 集成了單元測(cè)試框架(Team Test),即:VSTS 單元測(cè)試。它支持:1. 生成測(cè)試代碼框架;2. 在IDE 中運(yùn)試;3. 支持從數(shù)據(jù)庫中加載數(shù)據(jù)的測(cè)試;4. 測(cè)試運(yùn)行完成后,進(jìn)行代碼分析覆蓋。使用VSTS 寫單元測(cè)試的步驟如下:1. 創(chuàng)建測(cè)試;2. 編寫測(cè)試;3. 運(yùn)試;4. 代碼覆蓋。1. 創(chuàng)建測(cè)試打開解決方案中的.cs 類文件(如:StudentManager),在其中的一個(gè)方法(如:AddStudent() )上右擊,選擇

9、“創(chuàng)建單元測(cè)試”命令。在彈出的“創(chuàng)建單元測(cè)試”框中的“輸出項(xiàng)目”下拉框中選擇“創(chuàng)建新的 Visual C# 測(cè)試項(xiàng)目”,單擊“確定”按鈕,并在“新建測(cè)試項(xiàng)目”框中輸入測(cè)試項(xiàng)目的名稱(如:MySchoolTest),單擊“創(chuàng)建”按鈕后,就看見在原有的解決方案中生成了一個(gè)新的項(xiàng)目“MySchoolTest”。測(cè)試項(xiàng)目創(chuàng)建成功后,會(huì)同時(shí)生成 4 個(gè)與測(cè)試相關(guān)的文件:AuthoringTest.txt提供創(chuàng)建測(cè)試的說明,包2. 編寫測(cè)試創(chuàng)建測(cè)試完畢后,VSTS 為自動(dòng)生成的只是一個(gè)測(cè)試框架,默認(rèn)代碼中 Assert.Inconclusive 表明這是一個(gè)驗(yàn)證的單元測(cè)試。打開生成的測(cè)試文件“Studen

10、tManagerTest.cs”,如示例 1:TestMethodpublic void AddStudentTest()global:MySchool.BLL.StudentManager= new global:MySchool.BLL.StudentManager();/ TODO:初始化為適當(dāng)?shù)闹礸lobal:MySchool.Ms.Student student = null; string expected = null;string actual;actual =.AddStudent(student);Assert.AreEqual(expected, actual,括向項(xiàng)目增

11、加其他測(cè)試的說明;StudentManagerTest.cs包含 AddStudent()的測(cè)試,以及測(cè)試初始化和測(cè)試清除的方法;MySchoolPro.vsmdi測(cè)試管理文件;localtestrun.testrunconfig本地測(cè)試運(yùn)行配置文件。單元測(cè)試中,幾個(gè)變量的簡(jiǎn)單介紹:?jiǎn)卧獪y(cè)試中,常用的斷言方法介紹:Assert.AreEqual()測(cè)試指定的值是否相等,如果相等,則測(cè)試通過;Assert.Inconclusive()表示一個(gè)未驗(yàn)證的測(cè)試;Assert.IsTrue()測(cè)試指定的條件是否為 True,如果為 True,則測(cè)試通過;Assert.IsFalse()測(cè)試指定的條件是否

12、為False,如果為 False,則測(cè)試通過;Assert.IsNull()測(cè)試指定的對(duì)象是否為空,如果為空,則測(cè)試通過;Assert.IsNotNull()測(cè)試指定的對(duì)象是否為非空,如果不為空,則測(cè)試通過;表示測(cè)試目標(biāo)對(duì)象,通過這個(gè)目標(biāo)對(duì)象可以測(cè)試該類中的各個(gè)方法;expected表示期望得到的值;actual表示實(shí)際得到的值;MySchool.BLL.StudentManager.AddStudent 未返回所需的值。);Assert.Inconclusive(驗(yàn)證此測(cè)試方法的正確性。);通過對(duì)示例 1 添加測(cè)試所需的初始值,并對(duì)斷言進(jìn)行簡(jiǎn)單的修改后,便得到一個(gè)正式的單元測(cè)試。如示例 2:

13、TestMethodpublic void AddStudentTest()global:MySchool.BLL.StudentManager= new global:MySchool.BLL.StudentManager();/ TODO:初始化為適當(dāng)?shù)闹礸lobal:MySchool.Ms.Student student = new global:MySchool.Ms.Student(); / 修改 1student.LoginId = 003;student.LoginPwd = test003; student.UserSeId = 1; student.studentName =

14、 test003; student.studentNo = test003; student.Sex = 男;student.Cla= 1;string expected = 學(xué)員帳戶創(chuàng)建成功!; /修改 2 string actual;actual =.AddStudent(student);Assert.AreEqual(expected, actual,MySchool.BLL.StudentManager.AddStudent 未返回所需的值。);/ Assert.Inconclusive(驗(yàn)證此測(cè)試方法的正確性。);這樣,便得到了一個(gè)正式的單元測(cè)試。用斷言 Assert.AreEqu

15、al()比較 expected、actual 是否相等。如果相等,測(cè)試通過。配置文件中的設(shè)置由于的測(cè)試需要和數(shù)據(jù)庫打交道,并且數(shù)據(jù)庫的連接字符串是從配置文件中的,所以需要在測(cè)試項(xiàng)目中添加配置文件(app.config)。如示例 3:用 VSTS 進(jìn)行壓力測(cè)試VSTS 提供了一個(gè)豐富、強(qiáng)大的工具,融合了開發(fā)領(lǐng)域的各個(gè)角色,涵蓋開發(fā)生命周期的各個(gè)階段,包括設(shè)計(jì),開發(fā),測(cè)試,管理,而這一整套構(gòu)件的融會(huì)貫通,讓它可以有效地改善各個(gè)階段的弊端,提高團(tuán)隊(duì)之間不同的角色的協(xié)調(diào)能力,提高工作效率。開發(fā)過本文就簡(jiǎn)單介紹一下如何利用 VSTS 給一個(gè)做壓力測(cè)試。1 建立一個(gè)測(cè)試項(xiàng)目,起名MyTest/數(shù)據(jù)庫連接字

16、符串設(shè)置2 建立一個(gè)Web Test點(diǎn)擊Web Test.IE 馬上就會(huì)彈出一個(gè)窗口,這樣錄制3 在IE 里輸入要測(cè)試的地址: 比如工作就可以開始了。對(duì)該錄制做一些操作, 此時(shí)VSTS 會(huì)畢,點(diǎn)擊 STOP下你的這些操作,用以作為壓力測(cè)試的場(chǎng)景。6 點(diǎn)擊生成代碼,可以看到剛才錄制的類似如下的代碼:/ / This code was generated by a tool./ Runtime Ver/:2.0.50727.42/ Changes to this file may cause incorrect behavior and will be lost if/ the code is r

17、egenerated./ /namespace MyTestusing System;using System.Collections.Generic; using System.Text;usingusing.VisualStudio.TestTools.WebTesting;.VisualStudio.TestTools.WebTesting.Rules;public class WebTest1Coded : WebTestpublic WebTest1Coded()this.PreAuthenticate = true;public override IEnumerator GetRe

18、questEnumerator()WebTestRequest request1 = new WebTestRequest( request1.ThinkTime = 1688;ExtractHiddenFields rule1 = new ExtractHiddenFields();rule1.ContextParameterName = 1;);request1.ExtractValues += new Evenyield return request1;ndler(rule1.Extract);WebTestRequest request2 = new WebTestRequest(re

19、quest2.ThinkTime = 2;);request2.Method = T;FormtHttpBody request2Body = new FormtHttpBody();request2Body.Formrequest2Body.Form request2Body.FormtParameters.Add( VIEWSE, this.Context$HIDDEN1. VIEWSE.ToString();tParameters.Add(Button1, Go to Test Page);tParameters.Add( VIEWSEENCRYPTED,this.Context$HID

20、DEN1. VIEWSEENCRYPTED.ToString();request2Body.FormtParameters.Add( EVENTVALIDATION,this.Context$HIDDEN1. EVENTVALIDATION.ToString();request2.Body = request2Body;ExtractHiddenFields rule2 = new ExtractHiddenFields(); rule2.ContextParameterName = 1;request2.ExtractValues += new Evenyield return reques

21、t2;ndler(rule2.Extract);WebTestRequest request3 = new WebTestRequest();request3.Method = T;FormtHttpBody request3Body = new FormtHttpBody();request3Body.Formrequest3Body.Form request3Body.FormtParameters.Add( VIEWSE, this.Context$HIDDEN1. VIEWSE.ToString();tParameters.Add(Button1, Go to default page

22、.);tParameters.Add( EVENTVALIDATION,this.Context$HIDDEN1. EVENTVALIDATION.ToString();request3.Body = request3Body; yield return request3;7 添加一個(gè) Load Test .8 填寫好Load Test 的各項(xiàng)參數(shù)第一步是填寫場(chǎng)景名第二步是填寫裝載的樣式如果選擇一次裝載固定的用戶數(shù),選擇第一項(xiàng)Constant Load如果選擇Setp Load,表示步增,設(shè)置好開始時(shí)的用戶數(shù),以及經(jīng)過多久每次增加的用戶數(shù)Test MixBrowser MixNetwork M

23、ix在Counter Sets 選擇Add Compuer.,表示要對(duì)某個(gè) PC 進(jìn)行Run Settings9 點(diǎn)擊Finish10 點(diǎn)擊Run Test,測(cè)試就開始了。壓力測(cè)試運(yùn)行后,就可以選中某個(gè)參數(shù),查看某個(gè)時(shí)刻機(jī)器個(gè)方面的性能。參看下圖:也可以運(yùn)行perfmon,通過 Performance 查看機(jī)器的各項(xiàng)指標(biāo)。VSTS 端口設(shè)置必須開放的TCP 端口,這樣Team Foundation 組件之間才能進(jìn)行通訊。1)SQL Server 2005 用到的端口SQL Server 2005 (Developer, Standard, orEntrise Edition) 用到如下 TCP

24、ports:Server or Application ServiBrowser ServiMonitoringContextKeynameQL_SERVI QL_BROWSERhemsiproperty.iniFile TCP Port 14331434144423822383SQL SQL SQL SQLSQLSQL_MONITORINGServerServerysis Service Redirector SQL_YSIS_REDIRECTORYSISysis ServiQL_SQL Server Reporting ServiceVSTF_WSSSQL_PORT802)Windows

25、SharePoImportantServi用到的端口如果你選擇連接一個(gè)已經(jīng)存在的 Windows SharePoServi部署,這些端口可能會(huì)不同。你可以自己確定這些端Server or Application Context。TCPPortKeynamehemsiproperty.iniFileWindows SharePoServiVSTF_WSSSQL_PORT80SharePoCentralVSTF_WSS_ADMIN_PORT17012AdministrationImportant在安裝完 WWS 后,你要自己手動(dòng)添加這些端口到Team Foundation Server 需要的端口

26、。Server or Application ContextKeynamehe msiproperty.iniFileTCP Port 80808081Team TeamTeamFoundation FoundationFoundationServerServroxy Build Remoting1VSTF_WEBSITE_PORTVSTF_WEBSITE_PORTNot set in.inifile2自定義簽入代碼策略建立自定義策略項(xiàng)目1. 打開VS2008:2. 選擇文件下的新建菜單中的項(xiàng)目:3.在新項(xiàng)目中選擇Visual C#Windows類庫:4.輸入項(xiàng)目名為CopyrightChec

27、kinPolicy:5.選擇確定按鈕保存.6.重命名Clase1為CopyrightPolicy.cs:7.右擊項(xiàng)目選擇添加:8.在.NET選項(xiàng)卡選擇System.Windows.Forms選擇確定:9.再右擊項(xiàng)目, 選擇添加選擇瀏覽選項(xiàng)卡, 找到下面路徑的文件:C:Program FilesVisual Studio 9.0Common7IDEPrivateAssembs.TeamFoundation.VerControl.Cnt.dll并添加:10. 在類中輸入下面代碼: using System.Windows.Forms; using System.Collections; using

28、 System.IO; using System.Collections.Generic; using System.Text; namespace CopyrightCheckinPolicy Serializableget return Strings.policyDescription; public override bool Edit(IPolicyEditArgs policyEditArgs)public override string Descriptionpublic class CopyrightPolicy : PolicyBaseusing System;using.T

29、eamFoundation.VerControl.Cnt;if (Path.GetExten(change.LocalItem) = .cs)foreach (PendingChange change in checkedFiles)kedPendingChanges;PendingChange checkedFiles = this.PendingCheckin.PendingChanges.ChecArrayList changes = new ArrayList();sedMessage);throw new ObjectDisedException(Strings.policyType

30、, Strings.policyDispoif (this.Dised)public override PolicyFailure Evaluate()return false;get return Strings.policyType; public override string Typereturn (PolicyFailure)changes.ToArray(typeof(PolicyFailure);changes.Add(failure);hange.LocalItem, this);PolicyFailure failure = new PolicyFailure(Stringi

31、vateMessage + : + cif (IsFileMissingCopyrightNotice(change.LocalItem)hange.ChangeType.ToString().Contains(ChangeType.Add.ToString()if (change.ChangeType.ToString().Contains(ChangeType.Edit.ToString() | cMessageBox.Show(Strings.policyHelp);public override void DisplayHelp(PolicyFailure failure)return

32、 false;getpublic override bool CanEditget return Strings.policyTypeDescription; public override string TypeDescriptionprotected override void OnPolicySeChanged(PolicyFailure failures)MessageBox.Show(StringivateMessage);public override void Activate(PolicyFailure failure)Strings.policyInstallationIns

33、tructions = value;setreturn Strings.policyInstallationInstructions;getpublic override string InstallationInstructionsw EvenndlendingCheckin_CheckedPendingChangesChanged); public override void Dise()w EvenndlendingCheckin_CheckedPendingChangesChanged); base.Dise(); private void pendingCheckin_Checked

34、PendingChangesChanged(Objecder, EventArgs e)PendingCheckin.PendingChanges.CheckedPendingChangesChanged -= nependingCheckin.PendingChanges.CheckedPendingChangesChanged += nebase.Initialize(pendingCheckin);public override void Initialize(IPendingCheckin pendingCheckin)base.OnPolicySeChanged(failures);

35、return false;catch (Exception)return result;sr.Close();bool result = !sourceCode.Contains(Copyright);string sourceCode = sr.ReadToEnd();StreamReader sr = new StreamReader(fullFileName, true);tryprivate bool IsFileMissingCopyrightNotitring fullFileName)OnPolicySeChanged(Evaluate();e Files include a Copyright Notice.; public sic string policyInstallationInstructions = Sorry, No instructions are available at t

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論