{"id":167,"date":"2015-11-17T08:00:47","date_gmt":"2015-11-17T07:00:47","guid":{"rendered":"https:\/\/sii.pl\/blog\/?p=167"},"modified":"2023-07-10T16:28:22","modified_gmt":"2023-07-10T14:28:22","slug":"visual-studio-express-for-desktop-stworzenie-projektu","status":"publish","type":"post","link":"https:\/\/sii.pl\/blog\/visual-studio-express-for-desktop-stworzenie-projektu\/","title":{"rendered":"Visual Studio Express for Desktop \u2013 stworzenie projektu"},"content":{"rendered":"\n<p><a href=\"https:\/\/sii.pl\/blog\/wstep-do-automatyzacji-testow-w-visual-studio-konfiguracja-srodowiska\/?category=testowanie&amp;tag=autoamtyzacja-testow,visual-studio\" target=\"_blank\" rel=\"noopener\">W poprzednim artykule dowiedzieli\u015bcie si\u0119<\/a> sk\u0105d pobra\u0107 wymagane narz\u0119dzia i jak skonfigurowa\u0107 \u015brodowisko, aby m\u00f3c w pe\u0142ni rozpocz\u0105\u0107 prac\u0119 nad tworzeniem zestawu test\u00f3w. Dzisiaj dowiecie si\u0119, jak stworzy\u0107 pierwszy projekt oraz co oznaczaj\u0105 wszystkie wykorzystane w te\u015bcie atrybuty.<\/p>\n\n\n\n<p>Kiedy Visual jest ju\u017c uruchomiony nale\u017cy wybra\u0107 <em>File -&gt; New Project<\/em>, nast\u0119pnie wybieramy odpowiedni\u0105 zak\u0142adk\u0119 <em>(Visual C# -&gt; Test -&gt; Unit Test Project<\/em>). Okno programu podzielone jest na sekcje: <strong>Test Explorer<\/strong>, gdzie znajduje si\u0119 lista wszystkich napisanych test\u00f3w; <strong>Solution Explorer<\/strong>, w kt\u00f3rym znajduje si\u0119 ca\u0142e drzewo projektu oraz sekcja, w kt\u00f3rej piszemy kod. Pokr\u00f3tce opisz\u0119 ka\u017cd\u0105 z nich, aby lepiej zrozumie\u0107 prac\u0119 z tym narz\u0119dziem.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">TEST EXPLORER<\/h3>\n\n\n\n<figure class=\"wp-block-image aligncenter\"><a href=\"https:\/\/sii.pl\/blog\/wp-content\/uploads\/2015\/10\/testexplorer-e1445524211267.png\"><img decoding=\"async\" src=\"https:\/\/sii.pl\/blog\/wp-content\/uploads\/2015\/10\/testexplorer.png\" alt=\"testexplorer\" class=\"wp-image-168\"\/><\/a><figcaption class=\"wp-element-caption\">Ryc. 1 Widok Test Explorera<\/figcaption><\/figure>\n\n\n\n<p>Jest to obszar, w kt\u00f3rym znajduje si\u0119 lista wszystkich napisanych przez nas test\u00f3w. Z tej listy mo\u017cemy uruchomi\u0107 pojedynczy test, kilka wybranych test\u00f3w (playlista) lub wszystkie w takiej kolejno\u015bci, w jakiej znajduj\u0105 si\u0119 na li\u015bcie. Lista sortowana jest alfabetycznie, wi\u0119c kolejno\u015b\u0107 dodawania test\u00f3w nie ma znaczenia.<\/p>\n\n\n\n<p>Aby uruchomi\u0107 pojedynczy test nale\u017cy klikn\u0105\u0107 na nim prawym przyciskiem myszy i wybra\u0107 \u201e<em>Run Selected Test<\/em>s\u201d.<\/p>\n\n\n\n<figure class=\"wp-block-image aligncenter\"><a href=\"https:\/\/sii.pl\/blog\/wp-content\/uploads\/2015\/10\/runtest.png\"><img decoding=\"async\" width=\"300\" height=\"234\" src=\"https:\/\/sii.pl\/blog\/wp-content\/uploads\/2015\/10\/runtest-300x234.png\" alt=\"runtest\" class=\"wp-image-173\" srcset=\"https:\/\/sii.pl\/blog\/wp-content\/uploads\/2015\/10\/runtest-300x234.png 300w, https:\/\/sii.pl\/blog\/wp-content\/uploads\/2015\/10\/runtest.png 326w\" sizes=\"(max-width: 300px) 100vw, 300px\" \/><\/a><figcaption class=\"wp-element-caption\">Ryc. 2 Uruchamianie wybranego testu<\/figcaption><\/figure>\n\n\n\n<h3 class=\"wp-block-heading\">SOLUTION EXPLORER<\/h3>\n\n\n\n<p>Jest to cz\u0119\u015b\u0107, w kt\u00f3rej znajduje si\u0119 drzewo naszego projektu. W strukturze tej mo\u017cemy wyr\u00f3\u017cni\u0107 katalogi takie jak: <em>Properties<\/em> \u2013 znajduj\u0105 si\u0119 tam pliki odpowiedzialne za w\u0142a\u015bciwo\u015bci projektu, tzw. Assemblies; <em>References<\/em> \u2013 tutaj znajduj\u0105 si\u0119 wszystkie do\u0142\u0105czone biblioteki, zar\u00f3wno systemowe jak i customowe, kt\u00f3re trzymamy gdzie\u015b na dysku. Nie dodanie odpowiedniej referencji w przypadku wywo\u0142ania funkcji z konkretnej biblioteki b\u0119dzie skutkowa\u0142o b\u0142\u0119dem, o kt\u00f3rym u\u017cytkownik zawsze jest powiadamiany; <em>NazwaTestCase<\/em> \u2013 w tym miejscu jest ju\u017c w\u0142a\u015bciwy plik z kodem c#, w kt\u00f3rym znajduj\u0105 si\u0119 nasze metody testowe.<\/p>\n\n\n\n<figure class=\"wp-block-image aligncenter\"><a href=\"https:\/\/sii.pl\/blog\/wp-content\/uploads\/2015\/10\/solutionExp.png\"><img decoding=\"async\" width=\"300\" height=\"257\" src=\"https:\/\/sii.pl\/blog\/wp-content\/uploads\/2015\/10\/solutionExp-300x257.png\" alt=\"solutionExp\" class=\"wp-image-169\" srcset=\"https:\/\/sii.pl\/blog\/wp-content\/uploads\/2015\/10\/solutionExp-300x257.png 300w, https:\/\/sii.pl\/blog\/wp-content\/uploads\/2015\/10\/solutionExp.png 331w\" sizes=\"(max-width: 300px) 100vw, 300px\" \/><\/a><figcaption class=\"wp-element-caption\">Ryc. 3 Widok Solution Explorera<\/figcaption><\/figure>\n\n\n\n<h3 class=\"wp-block-heading\">TEST AREA<\/h3>\n\n\n\n<p>Jest to w\u0142a\u015bciwa sekcja w kt\u00f3rej piszemy test. Poni\u017cej zaprezentowa\u0142am przyk\u0142adowy kod, w kt\u00f3rym stworzone zosta\u0142y dwie metody testowe. One nic jeszcze nie robi\u0105, zaimplementujemy je w kolejnym artykule na podstawie prostej aplikacji desktopowej.<\/p>\n\n\n\n<figure class=\"wp-block-image aligncenter\"><a href=\"https:\/\/sii.pl\/blog\/wp-content\/uploads\/2015\/10\/testarea.png\"><img decoding=\"async\" width=\"300\" height=\"220\" src=\"https:\/\/sii.pl\/blog\/wp-content\/uploads\/2015\/10\/testarea-300x220.png\" alt=\"testarea\" class=\"wp-image-171\" srcset=\"https:\/\/sii.pl\/blog\/wp-content\/uploads\/2015\/10\/testarea-300x220.png 300w, https:\/\/sii.pl\/blog\/wp-content\/uploads\/2015\/10\/testarea.png 525w\" sizes=\"(max-width: 300px) 100vw, 300px\" \/><\/a><figcaption class=\"wp-element-caption\">Ryc. 4 Widok Test Explorera<\/figcaption><\/figure>\n\n\n\n<p>Z pewno\u015bci\u0105 Wasz\u0105 uwag\u0119 przykuj\u0105 dwa pojawiaj\u0105ce si\u0119 atrybuty: [<em>TestClass<\/em>] i [<em>TestMethod<\/em>]. Takich atrybut\u00f3w w C# jest o wiele wi\u0119cej, np. <em>TestInitialize, TestCleanup, TestContext<\/em> itd. S\u0142u\u017c\u0105 one do kontrolowania tego, co si\u0119 dzieje w te\u015bcie. Poprzez atrybut <em>TestInitialize<\/em> mo\u017cemy oznaczy\u0107 metod\u0119, kt\u00f3ra b\u0119dzie si\u0119 wywo\u0142ywa\u0142a zawsze przed ka\u017cdym testem, np. zawsze b\u0119dzie uruchamia\u0142a i logowa\u0142a si\u0119 do aplikacji. <em>TestCleanup<\/em> natomiast zawsze zamknie okno aplikacji. Pisz\u0105c testy nie b\u0119dziemy ju\u017c si\u0119 nad tym zastanawia\u0107, poniewa\u017c to b\u0119dzie si\u0119 dzia\u0142o zawsze, przed ka\u017cdym, nowo napisanym testem. Zainteresowanych mo\u017cliwo\u015bciami atrybut\u00f3w w Visualu odsy\u0142am na stron\u0119 Microsoftu, gdzie znajd\u0105 wi\u0119cej informacji na temat ka\u017cdego z nich: <a href=\"https:\/\/msdn.microsoft.com\/en-us\/library\/microsoft.visualstudio.testtools.unittesting.testpropertyattribute.aspx\" rel=\"nofollow\" >https:\/\/msdn.microsoft.com\/en-us\/library\/microsoft.visualstudio.testtools.unittesting.testpropertyattribute.aspx#<\/a><\/p>\n\n\n\n<p>Oczywi\u015bcie w <a href=\"https:\/\/sii.pl\/blog\/wstep-do-automatyzacji-testow-w-visual-studio-konfiguracja-srodowiska\/?category=testowanie&amp;tag=autoamtyzacja-testow,visual-studio\" target=\"_blank\" rel=\"noopener\">Visual Studio Express<\/a>&nbsp;istnieje wi\u0119cej dodatkowych okienek, ale nie wymagaj\u0105 one szerszego om\u00f3wienia. W kolejnym artykule zajmiemy si\u0119 napisaniem prostego testu aplikacji desktopowej, z wykorzystaniem Inspect.exe.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<p>Chcesz lepiej zrozumie\u0107 aplikacje i systemy, kt\u00f3re testujesz? Do\u0142\u0105cz do ModernTester, poznaj najpotrzebniejsze narz\u0119dzia, frameworki oraz j\u0119zyki programowania i \u0107wicz na specjalnie przygotowanych \u015brodowiskach testowych: <a href=\"https:\/\/moderntester.sii.pl\/\" rel=\"nofollow\" >Platforma e-learningowa ModernTester<\/a><\/p>\n\n\n<div class=\"kk-star-ratings kksr-auto kksr-align-left kksr-valign-bottom\"\n    data-payload='{&quot;align&quot;:&quot;left&quot;,&quot;id&quot;:&quot;167&quot;,&quot;slug&quot;:&quot;default&quot;,&quot;valign&quot;:&quot;bottom&quot;,&quot;ignore&quot;:&quot;&quot;,&quot;reference&quot;:&quot;auto&quot;,&quot;class&quot;:&quot;&quot;,&quot;count&quot;:&quot;0&quot;,&quot;legendonly&quot;:&quot;&quot;,&quot;readonly&quot;:&quot;&quot;,&quot;score&quot;:&quot;0&quot;,&quot;starsonly&quot;:&quot;&quot;,&quot;best&quot;:&quot;5&quot;,&quot;gap&quot;:&quot;11&quot;,&quot;greet&quot;:&quot;&quot;,&quot;legend&quot;:&quot;0\\\/5 ( votes: 0)&quot;,&quot;size&quot;:&quot;18&quot;,&quot;title&quot;:&quot;Visual Studio Express for Desktop \u2013 stworzenie projektu&quot;,&quot;width&quot;:&quot;0&quot;,&quot;_legend&quot;:&quot;{score}\\\/{best} ( {votes}: {count})&quot;,&quot;font_factor&quot;:&quot;1.25&quot;}'>\n            \n<div class=\"kksr-stars\">\n    \n<div class=\"kksr-stars-inactive\">\n            <div class=\"kksr-star\" data-star=\"1\" style=\"padding-right: 11px\">\n            \n\n<div class=\"kksr-icon\" style=\"width: 18px; height: 18px;\"><\/div>\n        <\/div>\n            <div class=\"kksr-star\" data-star=\"2\" style=\"padding-right: 11px\">\n            \n\n<div class=\"kksr-icon\" style=\"width: 18px; height: 18px;\"><\/div>\n        <\/div>\n            <div class=\"kksr-star\" data-star=\"3\" style=\"padding-right: 11px\">\n            \n\n<div class=\"kksr-icon\" style=\"width: 18px; height: 18px;\"><\/div>\n        <\/div>\n            <div class=\"kksr-star\" data-star=\"4\" style=\"padding-right: 11px\">\n            \n\n<div class=\"kksr-icon\" style=\"width: 18px; height: 18px;\"><\/div>\n        <\/div>\n            <div class=\"kksr-star\" data-star=\"5\" style=\"padding-right: 11px\">\n            \n\n<div class=\"kksr-icon\" style=\"width: 18px; height: 18px;\"><\/div>\n        <\/div>\n    <\/div>\n    \n<div class=\"kksr-stars-active\" style=\"width: 0px;\">\n            <div class=\"kksr-star\" style=\"padding-right: 11px\">\n            \n\n<div class=\"kksr-icon\" style=\"width: 18px; height: 18px;\"><\/div>\n        <\/div>\n            <div class=\"kksr-star\" style=\"padding-right: 11px\">\n            \n\n<div class=\"kksr-icon\" style=\"width: 18px; height: 18px;\"><\/div>\n        <\/div>\n            <div class=\"kksr-star\" style=\"padding-right: 11px\">\n            \n\n<div class=\"kksr-icon\" style=\"width: 18px; height: 18px;\"><\/div>\n        <\/div>\n            <div class=\"kksr-star\" style=\"padding-right: 11px\">\n            \n\n<div class=\"kksr-icon\" style=\"width: 18px; height: 18px;\"><\/div>\n        <\/div>\n            <div class=\"kksr-star\" style=\"padding-right: 11px\">\n            \n\n<div class=\"kksr-icon\" style=\"width: 18px; height: 18px;\"><\/div>\n        <\/div>\n    <\/div>\n<\/div>\n                \n\n<div class=\"kksr-legend\" style=\"font-size: 14.4px;\">\n            <span class=\"kksr-muted\"><\/span>\n    <\/div>\n    <\/div>\n","protected":false},"excerpt":{"rendered":"<p>W poprzednim artykule dowiedzieli\u015bcie si\u0119 sk\u0105d pobra\u0107 wymagane narz\u0119dzia i jak skonfigurowa\u0107 \u015brodowisko, aby m\u00f3c w pe\u0142ni rozpocz\u0105\u0107 prac\u0119 nad &hellip; <a class=\"continued-btn\" href=\"https:\/\/sii.pl\/blog\/visual-studio-express-for-desktop-stworzenie-projektu\/\">Continued<\/a><\/p>\n","protected":false},"author":37,"featured_media":15426,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"_editorskit_title_hidden":false,"_editorskit_reading_time":2,"_editorskit_is_block_options_detached":false,"_editorskit_block_options_position":"{}","inline_featured_image":false,"footnotes":""},"categories":[1317],"tags":[68],"class_list":["post-167","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-testowanie","tag-visual-studio-express"],"acf":[],"aioseo_notices":[],"republish_history":[],"featured_media_url":"https:\/\/sii.pl\/blog\/wp-content\/uploads\/2015\/11\/software-development_visual_studio_blogersii.jpg","category_names":["Testowanie"],"_links":{"self":[{"href":"https:\/\/sii.pl\/blog\/wp-json\/wp\/v2\/posts\/167"}],"collection":[{"href":"https:\/\/sii.pl\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/sii.pl\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/sii.pl\/blog\/wp-json\/wp\/v2\/users\/37"}],"replies":[{"embeddable":true,"href":"https:\/\/sii.pl\/blog\/wp-json\/wp\/v2\/comments?post=167"}],"version-history":[{"count":2,"href":"https:\/\/sii.pl\/blog\/wp-json\/wp\/v2\/posts\/167\/revisions"}],"predecessor-version":[{"id":22809,"href":"https:\/\/sii.pl\/blog\/wp-json\/wp\/v2\/posts\/167\/revisions\/22809"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/sii.pl\/blog\/wp-json\/wp\/v2\/media\/15426"}],"wp:attachment":[{"href":"https:\/\/sii.pl\/blog\/wp-json\/wp\/v2\/media?parent=167"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/sii.pl\/blog\/wp-json\/wp\/v2\/categories?post=167"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/sii.pl\/blog\/wp-json\/wp\/v2\/tags?post=167"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}