小编Ada*_*oll的帖子

性能测试

我们正在使用VMWare和NUnit开发自动化回归测试.我们将测试分为几个步骤,现在我想看看每个步骤的性能回归.像NUnit一样,简单地对测试进行计时似乎并不可靠.我认为接受系数约为15%,但我们的步骤有时会有所不同,超过35%.在这种依赖资源的测试环境中,有没有一致的测试性能方法?"智能"计时系统是我唯一的选择吗?

.net vmware nunit regression-testing

2
推荐指数
1
解决办法
904
查看次数

Assembly.Load和Environment.CurrentDirectory

我意识到这里有一个相关的线程: 加载程序集及其依赖项

但我正在修改一些东西,这并不完全适用.

string path = Path.GetDirectoryName( pathOfAssembly ); 
Environment.CurrentDirectory = path;
Assembly.Load(Path.GetFileNameWithoutExtension(pastOfAssembly));
Run Code Online (Sandbox Code Playgroud)

你真的有理由这样做吗?使用它不会更有意义吗:

Assembly.LoadFile(pathOfAssembly);
Run Code Online (Sandbox Code Playgroud)

任何见解将不胜感激.

.net c# assemblies

2
推荐指数
1
解决办法
1878
查看次数

ExpandEnvironmentStrings不扩展我的变量

我在注册表中的Run键下有一个进程.它正在尝试访问我在上一个会话中定义的环境变量.我正在使用ExpandEnvironmentStrings来扩展路径中的变量.环境变量是用户配置文件变量.当我在命令行上运行我的进程时,它也不会扩展.如果我调用'set',我可以看到变量.

一些代码......

CString strPath = "\\\\server\\%share%"
TCHAR cOutputPath[32000]; 
DWORD result = ExpandEnvironmentStrings((LPSTR)&strPath, (LPSTR)&cOutputPath,  _tcslen(strPath) + 1);
 if ( !result )
 {
  int lastError = GetLastError();
  pLog->Log(_T( "Failed to expand environment strings. GetLastError=%d"),1, lastError);
 }
Run Code Online (Sandbox Code Playgroud)

调试时输出路径与Path完全相同.没有返回错误代码.

什么是布莱恩?

c++ winapi environment-variables

2
推荐指数
1
解决办法
6150
查看次数

为什么会崩溃?

我一直在敲我的脑袋......我不能假装成一个C++家伙......

    TCHAR * pszUserName = userName.GetBuffer();
SID sid;
SecureZeroMemory(&sid, sizeof(sid));
SID_NAME_USE sidNameUse;
DWORD cbSid = sizeof(sid);

pLog->Log(_T("Getting the SID for user [%s]"), 1, userName);

if (!LookupAccountName(NULL, (LPSTR)pszUserName, &sid, &cbSid, NULL, 0, &sidNameUse))
{
    pLog->Log(_T("Failed to look up user SID. Error code: %d"),1,  GetLastError());
    return _T("");
}

pLog->Log(_T("Converting binary SID to string SID"));
Run Code Online (Sandbox Code Playgroud)

消息"为用户[x]获取SID",但随后应用程序崩溃.我假设是LookupAccountName电话.

编辑:

Whoops userName是一个MFC CString

c++ winapi

2
推荐指数
1
解决办法
1125
查看次数

C# - 动态关键字和接口实现

我假设这是不可能的,但在进一步挖掘之前有办法做这样的事情:

public void ProcessInterface(ISomeInterface obj) {}

//...

dynamic myDyn = GetDynamic<ISomeInterface>() 
ProcessInterface(myDyn);
Run Code Online (Sandbox Code Playgroud)

我看过一篇帖子争论它,但听起来它没有被包括在内.

一点上下文:通过COM公开的.Net程序集 - > Silverlight app消耗接口实现类.通过接口引用对象会很好.我真的不希望这是有意的......

c# silverlight .net-4.0 dynamic-keyword

2
推荐指数
1
解决办法
649
查看次数

Marshal.StructureToPtr使Visual Studio崩溃

我正在研究自定义调试引擎,当我将我的结构编组到IntPtrVisual Studio崩溃时(正在调试的那个崩溃而不是调试器).

我的结构只不过是:

public struct DocumentContext : IDebugDocumentContext2, IDebugCodeContext2
{
    private string _fileName;

    //.....Implementation of interfaces
}
Run Code Online (Sandbox Code Playgroud)

我的编组代码如下所示:

        var documentContext = new DocumentContext(_node.FileName);
        var size = Marshal.SizeOf(documentContext);
        IntPtr ptrDocContext = Marshal.AllocHGlobal(size);
        //This is what is crashing 
        //I don't have a chance to catch anything, it just craps out
        //Event log says faulting dll is nt.dll
        Marshal.StructureToPtr(documentContext, ptrDocContext, true); 
Run Code Online (Sandbox Code Playgroud)

我错过了什么吗?

c# unmanaged visual-studio-2010

2
推荐指数
1
解决办法
1627
查看次数

独特识别Android手机

是否有可通过SDK获得的Android handests的唯一ID?

我想提供一个Web服务,其操作只能针对每个用户的每个资源执行一次.也许有不同的方法可以解决这个问题.有任何想法吗?

android

2
推荐指数
1
解决办法
2235
查看次数

在利用依赖注入的同时,通过设计考虑简化测试

我们还需要几个月的时间才能重新设计产品的逻辑和业务层.通过利用MEF(依赖注入),我们已经实现了高水平的代码覆盖率,我相信我们拥有非常可靠的产品.由于我们一直在研究一些更复杂的逻辑,我发现单元测试越来越困难.

我们正在利用CompositionContainer来查询这些复杂算法所需的类型.我的单元测试有时难以遵循,因为必须进行冗长的模拟对象设置过程,恰到好处,以允许验证某些情况.我的单元测试通常比我试图测试的代码花费更长的时间来编写.

我意识到这不仅是依赖注入的问题,而且是整个设计的问题.对于我过于复杂的测试,是不是很差的方法设计或缺乏组合?我已经尝试过基类分析测试,创建常用的模拟对象并确保尽可能地利用容器来缓解这个问题,但我的测试总是非常复杂且难以调试.您已经看到哪些提示可以使这些测试简洁,可读且有效?

unit-testing dependency-injection mocking

1
推荐指数
1
解决办法
341
查看次数

Android:无法将TableLayout的重力设置为Right

我知道有很多关于这个的问题已经浮现在SO周围,但是我已经阅读了很多问题但仍然不能让我的第3列与右边对齐.

<?xml version="1.0" encoding="utf-8"?>
<TableLayout
  xmlns:android="http://schemas.android.com/apk/res/android"
  android:layout_width="fill_parent"
  android:layout_height="wrap_content"
  android:orientation="horizontal"
  android:background="#FFFFFF"
  android:stretchColumns="2"
 >
  <TableRow>

 <ImageView 
  android:src="@drawable/blue_light" 
  android:layout_height="48px" 
  android:layout_width="48px" 
  android:padding="3dp"
  android:layout_margin="3dp"
  android:layout_column="1"/>   

   <TableLayout xmlns:android="http://schemas.android.com/apk/res/android"
   android:layout_width="wrap_content"
   android:layout_height="wrap_content"
   android:layout_marginLeft="10px"
   android:layout_gravity="center_vertical"
   android:layout_column="2">

   <TableRow>
    <TextView 
     android:id="@+id/row_title"  
     android:textColor="#000000" 
     android:layout_width="wrap_content" 
      android:layout_height="wrap_content"  
      android:textStyle="bold" />
   </TableRow>

   <TableRow>
    <TextView 
     android:id="@+id/row_author"  
     android:layout_width="wrap_content"
      android:layout_height="wrap_content" 
      android:textColor="#9E9E9E"  
      android:textStyle="italic|bold"/>
   </TableRow>

   </TableLayout>

   <TableLayout 
    xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_column="3"
    android:layout_gravity="center_vertical|right"
  android:gravity="center_vertical|right"
   >

   <TableRow>
    <TextView 
     android:textColor="#1F9C29" 
     android:textSize="15dp" 
     android:id="@+id/row_txt1" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:textStyle="bold" />
   </TableRow>

   <View
    android:layout_height="1dp"
    android:background="#000000"
    android:layout_marginRight="3dp"
    />

   <TableRow>
    <TextView 
     android:textColor="#1B27D1" 
     android:id="@+id/row_txt2"
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:textStyle="bold"/>
   </TableRow>

   </TableLayout>
  </TableRow>
</TableLayout>
Run Code Online (Sandbox Code Playgroud)

我究竟做错了什么?

android

1
推荐指数
1
解决办法
6165
查看次数

在托管C++中返回奇怪的GetLastError

我对GetLastError和托管C++有一个非常奇怪的问题.从非托管代码转换为托管代码后,GetLastError返回一些非常奇怪的东西.

错误代码:122 - 传递给系统调用的数据区域太小.

另外,传入的strMessage正在向服务器发送它.

非托管功能:

   DWORD SendMessage(LPCTSTR strMessage, CString * strResponse)
   {

     DWORD dwLastError;
     BOOL bSuccess = FALSE;
     try 
     {
          //some socket code
          int ret =  recv...
          if (ret == SOCKET_ERROR || ret == 0)
          {
                Log(GetLastError());  //falls into here
                Log(WSAGetLastError());
                throw "Failed!"
          }
          bSuccess = TRUE;
     }
     catch (LPCTSTR pszException)
     {
         dwLastError = GetLastError();
         Log(pszException);
         Log(dwLastError );
         Log(WSAGetLastError());
     }

     Log(dwLastError);
     SetLastError(dwLastError);
     return bSuccess;
   }
Run Code Online (Sandbox Code Playgroud)

托管代码:

  void SendManagedMessage(String ^ strMessage)
  {
    CString cstrMessage = (char*) Marshal::StringToHGlobalAnsi(strMessage).ToPointer();
    CString cstrResponse;
       if …
Run Code Online (Sandbox Code Playgroud)

c# c++ winapi getlasterror

1
推荐指数
1
解决办法
939
查看次数

将IsolationLevel设置为Serializable的TransactionScope锁定所有SQL SELECT

我正在使用PowerShell交易; 这将创建一个具有Seri​​alizable的IsolationLevel的CommittableTransaction.问题是,当我在此上下文中执行事务时,除了执行事务的连接之外的任何连接上,除了事务影响的表之外,所有SELECT都被阻塞.我可以在交易中执行获取,但不能在其他任何地方执行.这包括SSMS和其他cmdlet执行.这是预期的行为吗?好像我错过了什么......

PS脚本:

Start-Transaction
Add-Something -UseTransaction 
Get-Something #hangs here until timeout
Add-Something -UseTransaction
Undo-Transaction
Run Code Online (Sandbox Code Playgroud)

c# sql-server powershell transactions transactionscope

0
推荐指数
1
解决办法
1700
查看次数