ארכיון

רשומות עם התג ‘Visual Studio’

Tip: Resharper and Unit Testing Settings

נניח שיש לכם Unit Testing וגם מותקן לכם Resharper ב Visual Studio.

נניח גם שהטסטים שלכם מתבססים על קיומם של קבצים מסויימים.

ואז אתם מנסים להריץ את הטסטים האלה דרך הרישרפר, מצפים ל Pass ומקבלים Fail.. למה?

תמונה אחת שווה אלף מילים:

להסיר את הסימון

יש איזו הגדרה נסתרת ברישרפר (לפחות בגירסה 5, לא בדקתי את 6), שיוצרת shadow copy במסגרת של unit-testing. אם תסירו את מסימון מההגדרה הזו, אני מעריך שהתסכול יהיה נמוך יותר אם הטסט לא עובר.

בקיצור, תסירו את הסימון ותאריכו ימים 🙂

Happy Testing!

קטגוריות:תכנות תגיות:, , ,

Tip: Just Run It

לפעמים אני רק רוצה לבדוק משהו קטן בקוד ולהריץ. קוד קצר, בלי עניינים מיותרים. אז אני פותח את הויז'ואל סטודיו, ובוחר בפרוייקט מסוג Console Application, הבחירה הטבעית לעניין שכזה.

אבל Visual Studio 2010, כברירת מחדל, מחייב אותי לשמור את הפרוייקט בתיקיה, ורק אז אני אוכל להתחיל לעבוד. זה יכול להיות קצת מציק, כי אני רק רוצה לבדוק משהו בקטנה, לא להרים פרויקט פורמלי עם קבצים ותיקיית bin\debug.

כאן באה לעזרתנו הגדרה גלובלית ב Visual Studio 2010: מתפריט Tools בוחרים ב Options, ובחלון שנפתח בוחרים ב Projects and Solutions, ושם יש את האופציה הבאה:
Save new projects when created
כפי שרואים בתמונה כאן, האופציה הזו מסומנת (checked) כברירת מחדל:

אפשר להסיר את הסימון מהאופציה הזו, ואז חלק מהפרויקטים שתבחרו (כולל Console Application) – יפתחו מבלי שנצטרך לבחור תיקיה לשמירה וכו'. נוכל גם להריץ, לדבג והכל. בסיום העבודה (סגירת הויז'ואל או סגירת ה solution) נקבל את הדיאלוג הבא:

אם נבחר באופציה Save – נוכל, כמובן, לשמור את ה solution שלנו.

אבל אם נבחר באופציה Discard – הפרויקט הנ"ל ימחק לחלוטין, כולל תיקיות bin\debug! יש!!
(למעשה כל הפרויקט נשמר ב <current-user>\AppData\Local\Temporary Projects ומשם הוא נמחק)

נייס! 🙂

קטגוריות:תכנות תגיות:,

Tip: Setting a startup project in the .sln file

הכנתי פרויקט Lib מסוג Class Library והכנתי פרויקט Demo (שמשתמש ב Lib) מסוג Console Application, ושניהם באותו solution.
שמרתי הכל, והגדרתי שה Demo יהיה ה startup project. הגיוני.
ועכשיו רציתי לשים את הכל כדוגמה לפוסט, אז כיווצתי הכל ל zip.

רק שניה, לפני שאני מעלה את זה, רק כדי לוודא שהכל עובד, אני פותח את הזיפ בתיקיה חדשה וריקה, ומשם פותח את ה Visual Studio 2008 ולוחץ F5 כדי להריץ… ופתאום הוא בוכה שאי אפשר להריץ Class Library, ואני הרי זוכר שממש לפני דקה הגדרתי שה startup project יהיה ה Demo. 😡

טוב, בטח אני לא הראשון שנתקל בזה, אז קדימה לגגל!
הגעתי (איך לא) לדיון דומה ב stackoverflow.com, וגם לפוסט בנושא בבלוג של Arian Kulp.
מה מסתבר? שההגדרה של ה startup project לא נשמרת ב sln, אלא ב suo. 😯
יש דרך לעקוף את זה:
פותחים את קובץ ה sln באיזה text editor כמו notepad (אני אישית מעריץ נלהב של NPP), ושם יש שורות כמו אלו:

Microsoft Visual Studio Solution File, Format Version 10.00
# Visual Studio 2008
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Lib", "Lib\Lib.csproj", "{F959D3D9-052F-4C62-B957-BF6459CB2209}"
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Demo", "Demo\Demo.csproj", "{852E3624-B5EB-40DF-A2EE-481037C8F47B}"
EndProject

פשוט מעבירים את החלק של Project…EndProject של הפרוייקט הרצוי להיות הראשון. בהמשך לדוגמה הזו, המצב הרצוי הוא:

Microsoft Visual Studio Solution File, Format Version 10.00
# Visual Studio 2008
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Demo", "Demo\Demo.csproj", "{852E3624-B5EB-40DF-A2EE-481037C8F47B}"
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Lib", "Lib\Lib.csproj", "{F959D3D9-052F-4C62-B957-BF6459CB2209}"
EndProject

וזה עושה את העבודה.

שימושי כשרוצים להוסיף פרויקט דוגמה לפוסט, ו/או בפרויקטים של קוד פתוח ברשת.
תוכלו לנסות בעצמכם 🙂

קטגוריות:תכנות תגיות:,
Quantcast